NGINX 配置 ssl /https 安全证书

443端口 和 http_ssl_module模块

服务器需要开启了443端口(HTTPS服务的默认端口)。

firewall-cmd --zone=public --query-port=443/tcp  # 查看
firewall-cmd --zone=public --add-port=443/tcp --permanent   # 添加

服务器上需要安装了http_ssl_module模块(启用SSL功能)。
使用 ./nginx -V 命令查看 是否有 http_ssl_module

[root@192 conf.d]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --conf-path=/etc/nginx/nginx.conf --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module
[root@192 conf.d]# 

如果没有安装,则需要重新编译安装

./configure xxx其他参数xxx --with-http_ssl_module

配置Nginx支持Https, SSL证书

https://blog.csdn.net/weixin_43842164/article/details/86496220

.key的文件和.pem文件 分别是 证书密钥文件 和 证书文件

阿里云 文档:
https://help.aliyun.com/document_detail/98728.html

server {
 listen 443;
 server_name localhost;
 ssl on;
 root html;
 index index.html index.htm;
 ssl_certificate   cert/a.pem;      #放在conf目录下后为a.pem;  
 ssl_certificate_key  cert/a.key; 	#放在conf目录下后为a.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 / {
     root html;
     index index.html index.htm;
 }
}

nginx配置http访问自动跳转到https

https://www.cnblogs.com/kinwing/p/12875992.html
按照如下格式修改nginx.conf 配置文件,80端口会自动转给443端口,这样就强制使用SSL证书加密了。访问http的时候会自动跳转到https上面。

server {
  listen 80;
  server_name www.域名.com;
  rewrite ^(.*) https://$server_name$1 permanent;
}
server {
    listen 443;
    server_name www.域名.com;
    .....
}

Nginx配置域名同时支持 https 和 http 访问

https://blog.csdn.net/revitalizing/article/details/55271848

server
     {
         listen 80;
         listen      443 ssl;   //修改后
         server_name  liu.test.com;
         location /
            {
              expires      302400s;

              proxy_pass   http://xxxx/xxxx/;            
                 }
              #ssl on;    //修改后
              ssl_certificate /usr/local/nginx/conf/server.crt;
              ssl_certificate_key /usr/local/nginx/conf/server.key;
              access_log  /usr/local/nginx/xxxx.log   log_access;

      }

遇到的问题

ssl 证书类型:免费的 dv ssl ,只能绑定一个域名
同一个ip映射了两个域名,一个主域名www.site.com,一个二级域名a.site.com,在 a.site.com 已经绑定了一个 dv ssl 证书 (用于tomcat后端访问,微信用)
现在要在 www.site.com 绑定一个 dv ssl 证书(NGINX配置,前端web),配置好后,浏览器访问 https://www.site.com ,出现问题,说是证书不是该网站的,
看了看证书,发现使用的是 a.site.com 的证书,好奇怪,检查了配置好几次,发现没问题
怀疑是同一个ip下这种免费的证书冲突,只能一个有效。
将a.site.com 的 ssl 证书停掉,而 www.site.com 正常配置证书,浏览器访问 https://www.site.com 结果正常

https://blog.csdn.net/bingbob/article/details/102819783

posted @ 2020-07-08 15:57  zhanglw  阅读(443)  评论(0)    收藏  举报