nginx 配置HTTPS SSL问题汇总
1.我们第一步能想到的就是在/usr/local/nginx/conf/ 目录下找到nginx.conf 文件 里面会存在 443端口的server 这段代码是被注释的 我们可以放开注释,然后配置证书路径 配置参数 不矫情 直接上代码
server {
listen 80;
server_name 域名1 域名2 ;# 多个域名中间用空格
rewrite (.*) https://$server_name$request_uri; # 配置重定向
#charset koi8-r;
#access_log logs/host.access.log main;
location /abc {
index index;
proxy_pass http://127.0.0.1:8080; # 配置自己的tomcat 访问 如 127.0.0.1:8080
}
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 443 ssl;
server_name server_name 域名1 域名2 ;# 多个域名中间用空格
ssl on;
ssl_certificate 自己的证书路径.pem;
ssl_certificate_key 自己的证书路径.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location /abc{
index index;
proxy_pass http://127.0.0.1:8080;
}
}
当我们配置好,觉得大功告成的时候 。到/usr/local/nginx/sbin 目录下执行命令
./nginx -t 时 会发现报SSL 异常错误
这时候 我们需要到nginx 解压目录下 如我的解压目录
nginx 安装目录进入
进入此目录下执行 命令 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
执行 make
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)
cp ./objs/nginx /usr/local/nginx/sbin/
执行完结束后,会发现 /usr/local/nginx/sbin/ 目录下多个一个 nginx.bak 文件夹 删除
这时候离成功不远了↓↓↓↓↓↓↓↓↓↓↓↓↓↓
关闭nginx
nginx -s quit :完整有序的停止nginx
最后重启nginx 大功告成。
如有不解之处,或者错误之处,请大家提点指出。一起进步,一起探讨,谢谢大家