nginx数字证书与反向代理配置
创始人
2024-05-29 15:05:36

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

相关内容

热门资讯

脑机接口遇到音乐治疗,AI真能... 志愿者体验“央音一号”。受访者供图 在走进中央音乐学院“央音一号”实验室之前,中青报·中青网记者对脑...
伊朗警告:若遭攻击必将还击 据外媒报道,伊朗议长卡利巴夫11日说,如果美国对伊朗发动打击,伊朗将把以色列以及美国在中东地区的军事...
SpaceX再部署7500颗星... 来源:@央视财经微博 【#SpaceX再部署7500颗星...
商络电子:向不特定对象发行可转... 商络电子公告,公司于2026年1月9日收到深圳证券交易所出具的《关于受理南京商络电子股份有限公司向不...
王毅原定访问索马里计划推迟 中... 新京报讯 据中国驻索马里使馆消息,有媒体报道,中共中央政治局委员、外交部长王毅原定1月9日访问索马里...