开启HTTPS加密连接

今天因为在弄心脏滴血的漏洞修复,于是兴起试了试网站的https连接,麻溜把步骤记下来。

首先准备https连接必须要的组件openssl。因为修复漏洞,我直接在官网下载最新版然后源码安装,源码安装三大金刚命令

1
2
3
/config --prefix=/usr/local/openssl

make && make install

安装完毕配置成本机命令:重命名已有的openssl命令,并在profile文件夹中添加/usr/local/openssl,同时创建软连到/usr/bin/openssl

其次修改Apache配置文件:

启用组件mod_ssl.so和mod_socache_shmcb.so

启用配置文件conf/extra/httpd-ssl.conf

生成ssl证书

1
2
3
4
5
6
#生成私钥key文件
openssl genrsa -des3 -out server.key 1024
#生成证书签名请求csr文件,并按要求填写相关信息
openssl req -new -key server.key -out server.csr
#自签证。或者省略这一步,将csr文件和key文件提交给权威证书颁发机构
openssl x509 -req -days 700 -in server.csr -signkey server.key -out server.crt

将生成好的server.crt以及server.key复制到httpd-ssl.conf配置文件中记录的位置。因为我除了servername之外没修改httpd-ssl.conf中其他的设置项,所以复制到了它默认的conf文件夹下。

准备工作就绪之后重启Apache使上面的配置生效,如此在不出意外的情况下,就能使用HTTPS协议访问网页了。当然,因为我们的网站证书没有注册,所以打开网页的时候IE浏览器会提示网站安全证书存在问题。

Nginx配置

将以下放入server段

1
2
3
4
5
ssl on;
#定义证书crt文件位置
ssl_certificate /root/server.crt;
#定义私钥key文件位置
ssl_certificate_key /root/server.key;

附:常见SSL证书格式转换