1、
检查系统openssl软件
rpm -qa|grep openssl
[root@local test]# rpm -qa|grep openssl
openssl-devel-1.0.2k-19.el7.x86_64
openssl-1.0.2k-19.el7.x86_64
openssl-libs-1.0.2k-19.el7.x86_64
xmlsec1-openssl-1.2.20-7.el7_4.x86_64
如果没有安装需要运行yum命令安装:yum install -y openssl-*
2、
重新编译nginx,添加ssl模块
进入到nginx源码解压后的目录
执行配置
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
注:http_stub_status_module为nginx状态监控模块,我们后面会用到。
配置完成后执行make ,千万不要make install 否则会覆盖现有的nginx
关闭nginx
/usr/local/nginx/sbin/nginx -s quit
复制启动文件
copy ?~nginx-1.16.1/objs/nginx
到现有的/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -V 查看编译安装的模块
启动nginx
/usr/local/nginx/sbin/nginx
3、
自己生成ssl证书(在生产环境需要到专业的证书颁发机构购买,否则会导致证书不可信,影响访问和安全性)
生成自签名的证书
显然这里的证书不可能由权威证书颁发机构(CA)签名,因为申请一个证书签名的费用大概在一年几十到几百刀不等。
不过可以使用OpenSSL工具创建生成一个自签名的证书,步骤如下:
a) 进入想创建证书和私钥的目录,例如:
mkdir /usr/local/nginx/ssl
cd /usr/local/nginx/ssl
b) 创建私钥(需要输入一个口令):
openssl genrsa -des3 -out server.key 1024
c) 创建签名请求:
$ openssl req -new -key server.key -out server.csr
d) 移除私钥口令(否则在服务器启动nginx时会要求输入口令):
$ cp server.key server.key.org # 先备份
$ openssl rsa -in server.key.org -out server.key # 移除口令
e) 用私钥签名证书
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
4、
修改nginx配置文件
进入/usr/local/nginx/conf/test目录
将proxy.conf内容修改为:
server {
listen 443 ssl;
server_name 192.168.31.144;
ssl_certificate /usr/local/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://192.168.31.144;
}
}
5、
重新加载nginx
ln -s /usr/local/nginx/sbin/nginx /bin/
nginx -s reload
访问 https://192.168.31.144 可以跳转到博客系统,就成功了