1.nginx配置https访问, 生成自签名证书
执行如下命令生成一个key
openssl genrsa -des3 -out ssl.key 1024
然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。
由于生成时候必须输入密码。你可以输入后 再删掉。
mv ssl.key xxx.key
openssl rsa -in xxx.key -out ssl.key
rm xxx.key
然后根据这个key文件生成证书请求文件
openssl req -new -key ssl.key -out ssl.csr
最后根据这2个文件(ssl.key ssl.csr)生成crt证书文件
sudo openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
这里365是证书有效期 推荐3650哈哈。这个大家随意。最后使用到的文件是key和crt文件。
2.Nginx开启SSL模块
切换到源码包:cd /usr/local/src/nginx-1.11.3
查看nginx原有的模块 /usr/local/nginx/sbin/nginx -V
在configure arguments:后面显示的原有的configure参数如下:--prefix=/usr/local/nginx --with-http_stub_status_module
那么我们的新配置信息就应该这样写:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
运行上面的命令即可,等配置完
配置完成后,运行命令 make
这里不要进行make install,否则就是覆盖安装
然后备份原有已安装好的nginx cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态) cp ./objs/nginx /usr/local/nginx/sbin/
然后启动nginx,仍可以通过命令查看是否已经加入成功 /usr/local/nginx/sbin/nginx -V
Nginx 配置Http和Https共存
server {
listen 80
default
backlog=2048;
listen 443 ssl;
server_name wosign.com;
root /
var
/www/html;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
}
把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用