自娱自乐
简单来说,ssl协议是工作在传输层和应用层间用于保护应用层数据的安全协议。关于ssl协议的细节参阅《ssl & tls》,在此主要总结下如何开启Apache的ssl功能。
/etc/apache2/目录下有两个子目录:sites-available、sites-enabled。可以发现sites-enabled中的文件都是到sites-available的软连接,其中sites-avaliable中存放的都是真正的配置文件,每一个配置文件对应一个“虚拟主机”。可以理解为在一个IP地址上构建多个网站,每个网站对应一个配置文件。
1、 为启动ssl功能,首先第一步是加载apache ssl模块:
a2enmod ssl
2、用openssl分别生成CA证书、服务器证书,用CA给服务器签名,并将CA证书导入到浏览器中。
生成根秘钥:
Openssl genrsa –des3 –out rootca.key 1024
根自签名证书,目的为了给其它证书签名和根证书之间信任关系:
Openssl req –new –x509 –days 3650 –key rootca.key –out rootca.crt
生成服务器证书密钥:
Openssl genrsa –des3 –out server.key 1024
生成服务器根证书请求:
Openssl req –new –key server.key –out server.csr
生成服务器证书,并由根证书签名:
Openssl ca –in server.csr –outserver.crt –cert rootca.crt –keyfile rootca.key –config openssl.cnf
3、修改sites-avaliable中的default-ssl文件,将其中服务器证书和密钥存放位置改掉
4、ssl站点设为可运行
a2ensite ssl
5、重启apache,在浏览器中输入https://127.0.0.1,即可实现通过ssl访问服务器,抓包可以发现原本是明文的部分变成了乱码。
转载于:https://blog.51cto.com/hychuanshuo/1398777