nginx数字证书配置:
1./xxx/xxx/nginx/conf/conf.d下创建cer目录,把key与crt数字证书放到cer目录下。
2./xxx/xxx/nginx/conf/conf.d下创建xxxx.conf,然后配置即可:(配置文件如下)
upstream my_test{least_conn;server ip:端口 ; # 转发到该ip的端口(例如: 127.0.0.1:9090)
}server {listen 80; #监听端口server_name xxx.xxx.com; #来源域名或ipclient_max_body_size 200M;location /{#proxy_cache api_cache;#proxy_cache_valid 200 206 304 301 302 1h;#proxy_cache_key $uri$request_body;#proxy_cache_methods GET POST;#proxy_ignore_headers Cache-Control;#add_header X-Cache-Status $upstream_cache_status;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 500s;proxy_read_timeout 500s;proxy_send_timeout 500s;proxy_pass http://my_test;}access_log /usr/local/nginx/logs/my_test.log main; #日志文件位置,会自动创建
}server {listen 443 ssl; #443后加ssl,然后ssl on 注释才可以生效。server_name xxx.xxx.com; #来源域名或ip#ssl on;ssl_certificate conf.d/cer/xxx.crt; #数字证书位置ssl_certificate_key conf.d/cer/xxx.key; #密钥位置ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置ssl_prefer_server_ciphers on;client_max_body_size 50M;location / {proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 500s;proxy_read_timeout 500s;proxy_send_timeout 500s;proxy_pass http://my_test;}access_log /usr/local/nginx/logs/my_test.log main;#日志文件位置,会自动创建
}
3.配置完成以后,重启nginx即可(一般两个nginx都要重启:反向代理这个nginx和转发目的端口所在那个nginx):
./nginx -t 测试nginx配置是否正确
./nginx -s reload 重启nginx
4.如果重启nginx过程中报错:nginx: [emerg] unknown directive “ssl” in /usr/local/nginx/conf/con.d/xxx.conf:8
方案:
大概意思是找不到或者,没有安装OpenSSL,但是我whereis openssl,是能找到的,那应该就是没有配置openssl,
然后就重新配置一下:
进入Nginx安装目录:cd /usr/local/src/nginx-1.10.3
./configure --with-http_ssl_module
make
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak,然后输入Y
覆盖旧的:cp objs/nginx /usr/local/nginx/sbin/nginx
测试一下是否成功:/usr/local/nginx/sbin/nginx -t ,如图代表成功
重启Nginx(cd /usr/local/nginx/sbin,./nginx -s reload)
参考文章:https://blog.csdn.net/Maple_abao/article/details/82383004
5.如果如果重启nginx过程中报错:nginx: [warn] the “ssl” directive is deprecated, use the “listen … ssl” directive instead。
nginx升级版本之后,原来配置的所有ssl的站点全都报警告
解决办法:
在nginx的配置文件中,
将原来的ssl on注释掉或者删除
将原来的listen 443;修改成listen 443 ssl;
注意,两点都需要,如果只是将ssl on注释掉,不修改listen,测试语法的时候,是没有告警,重启nginx也没有问题,但是访问网站的时候会显示网站不是安全链接,即ssl配置没有生效。
参考文章:https://blog.csdn.net/weixin_44972135/article/details/106621593
下一篇:企业架构图之业务架构图