当前位置:   article > 正文

nginx https配置、多域名共享SSL证书、禁止ip访问、http强转https、证书过期更换_nginx多域名ssl

nginx多域名ssl

nginx https配置

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ...
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

按照nginx官方文档所说,要支持https,只需要配置listenssl_certificatessl_certificate_key 三项,ssl_certificate公钥,通常称为公钥证书,客户端请求建立连接时服务端会将公钥发送给客户端,ssl_certificate_key 是私钥,需要保密,私钥存在服务器端,建立连接时,不会发送到客户端ssl_protocolsssl_ciphers可以不指定,使用默认值即可。

nginx单ip多域名共享SSL证书

Https证书的SubjectAltName字段可以准确指定适配域名,比如a.domain.comb.domain.com,但有长度限制;SubjectAltName字段还可以指定通配符域名,比如*.domain.com,它只能覆盖一级,a.domain.com,b.doamin.com,但不能覆盖domain.com;通常可以将这两种使用方式结合起来,比如domain.com*.domain.com
单ip多域名情况,应该如何配置证书呢?
答案是在http块中配置SSL,这样server块会继承http中的ssl证书配置,SSL证书只占一块内存,与各个server中配置相比能节省内存。

http{
    ssl_certificate     common.crt;
    ssl_certificate_key common.key;

    server {
        listen          443 ssl;
        server_name     www.example.com;
        ...
    }

    server {
        listen          443 ssl;
        server_name     www.example.org;
        ...
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

查看证书内容

也许你会好奇,应该怎么查看SSL证书的域名信息呢?拿百度为例。
点击地址栏的锁---->连接是安全的---->证书有效---->详细信息---->使用者可选名称

在这里插入图片描述
可以看到,证书适配*.baidu.combaidu.com,还有个常见需求查看证书有效期
在这里插入图片描述
当然也可以通过命令查看证书内容,那就要用到openssl了,windows安装openssl,选择Win64 OpenSSL v3.0.3 Light版本,这也是官方推荐的版本。
在这里插入图片描述

查看证书内容
先将证书导出
点击地址栏的锁---->连接是安全的---->证书有效---->详细信息---->复制到文件----->
在这里插入图片描述
勾选base64编码
在这里插入图片描述

openssl x509 -in my.cer -noout -text
  • 1

在这里插入图片描述

查看证书链

有时同一个https网站,有的浏览器正常,有的浏览器告警,这大概率是证书签发机构是中间商,不在浏览器的基础签发库里导致,可以将中间商一直到root的签发机构串起来,
cat www.example.com.crt bundle.crt > www.example.com.chained.crt,注意www.example.com.crt要在前边;
查看证书链命令:

openssl s_client -connect www.baidu.com:443
  • 1

nginx http强转https

  server{
    listen 80;
    return 301 https://$host$request_uri;
  }
  • 1
  • 2
  • 3
  • 4
  • $host 依次从请求url中、request header的Host中、匹配的server_name中获取;
  • $request_uri会包含全部参数的原始请求uri

nginx 禁止ip访问

  server{
     listen 80 ;
     listen 443 ssl;
     server_name 指定ip;
     return 403;
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

证书过期替换/更新

如果证书过期了,需要手动替换;直接将证书覆盖,然后重新reload配置文件(nginx -s reload),浏览器中强制刷新(ctrl+f5),按照前文查看证书内容章节的步骤验证即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/465227
推荐阅读
相关标签
  

闽ICP备14008679号