Nginx下升级https
2019.06.11
hzzly
购买证书
可以去阿里云的云盾证书服务购买
下载证书
在证书控制台下载 Nginx 版本证书。下载到本地的压缩文件包解压后包含:
- .pem文件:证书文件
- .key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)
配置Nginx
1、在 Nginx 的安装目录下创建 cert 目录,并且将下载的全部文件拷贝到 cert 目录中,如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到 cert 目录下。
2、打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| worker_processes 1;
events { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on; gzip_min_length 1k; gzip_comp_level 3; gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css; gzip_disable "MSIE [1-6]\."; gzip_vary on;
server { listen 80 default backlog=2048; listen 443 ssl; server_name localhost;
ssl_certificate ../cert/hzzly.pem; ssl_certificate_key ../cert/hzzly.key;
ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
location / { root /home/hzzly; index index.html index.htm; }
} }
|
3、重启 Nginx
1 2
| $ cd /usr/local/nginx/sbin $ ./nginx -s reload
|
错误详解
1、Nginx如果未开启SSL模块,配置Https时提示错误
1
| nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in ...
|
Nginx开启SSL模块
切换到源码包:
1
| $ cd /usr/local/src/nginx-1.16.0
|
修改新的configure参数
1
| $ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
|
配置完成后,运行命令
1
| $ make //这里不要进行make install,否则就是覆盖安装
|
备份原有已安装好的nginx
1
| $ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
|
将刚刚编译好的nginx覆盖掉原有的nginx
1
| $ cp ./objs/nginx /usr/local/nginx/sbin/
|
重启 Nginx
1 2
| $ cd /usr/local/nginx/sbin $ ./nginx -s reload
|