具体想了解SSL/TLS原理的请浏览SSL/TLS协议运行机制的概述和SSL/TLS原理详解
对证书不太了解的,可以看数字证书及CA的扫盲介绍这篇文章。
1、安装升级openssl
首先,查看下当前设备的openssl版本,如果版本在openssl1.0.1g以上,请略过
openssl version -a #OpenSSL 1.0.1f 6 Jan 2014
如果是处于1.0.1-1.0.1f
的版本,那就赶快升级到1.0.1g
版本以上吧!因为这些版本存在漏洞,详情请见关于OpenSSL“心脏出血”漏洞的分析
从上面信息可以看出我们的系统版本是1.0.1f,openssl需要升级。
2、创建用私钥签名的证书,配置到Apache服务器
首先,生成私钥,创建请求证书,使用私钥对证书进行签名
生成私钥
openssl genrsa -des3 -out private.key 2048-des3代表加上了加密,后面的2048是代表生成的密钥的位数,1024已经不是很安全,详情请见 互联网全站HTTPS的时代已经到来
生成证书请求
openssl req -new -key private.key -out server.csr
这一步需要填写一些信息,其中Common Name (e.g. server FQDN or YOUR name) []
这个需要填写你的域名或服务器地址。
生成服务器的私钥,去除密钥口令
openssl rsa -in private.key -out server.key
使用私钥为证书请求签名,生成给服务器签署的证书,格式是x509的PEM格式
openssl x509 -req -in server.csr -out server.crt -outform pem -signkey server.key -days 3650
-outform pem指定证书生成的格式,默认是pem,所以这个命令也可以写作成
sudo openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650