添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

对于nginx多https站点通常的做法是这样:

server 443 ssl;
server_name nixops1.me;
ssl_certificate     /usr/local/nginx/keys/nixops1.me.crt;
ssl_certificate_key /usr/local/nginx/keys/nixops1.me.key;
......

如果有多个https站点,就是每个站点复制一份这个配置。如nixops2.me、nixops3.me等等,在只有几十个https站点的时候还好,如果某个站点的域名特别多,例如有几千个域名甚至上万个域名的时候,这个配置就很恐怖了,需要精简并合并配置。

下面举例说明,假设应用场景为:

  1. 同一站点有大量域名需要配置https证书,其它配置一样
  2. 每个之证书都是泛域名证书,如let's encrypt的wildcard证书
  3. 所有证书命名均为公钥domain.com.crt、私钥为domain.com.key 这样的格式
  4. 所有证书保存在相同目录中,如/usr/local/nginx/conf/keys/

具体做法可以用nginx的map和正则表达式,根据ssl_server_name(即https的访问域名),获取公钥和私钥的完整路径做为变量。配置证书时使用该变量即可。先来看nginx配置文件中HTTP段的map配置:

map $ssl_server_name $NixopsCert {
    default /usr/local/nginx/conf/keys/nixops.me.crt; #指定一个默认的证书
    ~*^(.+\.)*([^\.]+\.[^\.]+)$ /usr/local/nginx/conf/keys/$2.crt;
map $ssl_server_name $NixopsKey {
    default /usr/local/nginx/conf/keys/nixops.me.key;
    ~*^(.+\.)*([^\.]+\.[^\.]+)$ /usr/local/nginx/conf/keys/$2.key;

这样配置好后,如果通过https访问nixops1.me或*.nixops1.me,获取到的路径分别为:

$NixopsCert  --> /usr/local/nginx/conf/keys/nixops1.me.crt;
$NixopsKey   --> /usr/local/nginx/conf/keys/nixops1.me.key;

然后配置server段证书公钥和私钥时就不需要按传统作法复制配置,只需指定变量即可:

server {
    listen  80;
    listen  443 ssl http2;
    server_name
        nixops.me
        nixops1.me
        nixops2.me
        #......
    ssl_certificate     $NixopsCert;
    ssl_certificate_key $NixopsKey;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
   #其它server段配置

这样同一站点有多个证书时,就可以只在server_name里添加,不需要指定https配置了,和http站点添加域名绑定非常类似。

本文作者: 文章标题: nginx多https证书配置精简
本文地址: https://opswill.com/articles/ngnix-mutiple-https-sites.html
版权说明:若无注明,本文皆为“ 阅心笔记 ”原创,转载请保留文章出处。
  • 2024年04月 (1)
  • 2024年03月 (2)
  • 2024年02月 (2)
  • 2024年01月 (1)
  • 2023年08月 (1)
  • 2023年07月 (2)
  • 2023年06月 (1)
  • 2022年06月 (1)
  • 2021年10月 (1)
  • 2021年08月 (1)
  • 2021年06月 (2)
  • 2021年05月 (3)
  • 2021年01月 (2)
  • 2020年12月 (1)
  • 2020年11月 (1)
  • 2020年08月 (5)
  • 2020年07月 (8)
  • 2019年04月 (1)
  • 2018年01月 (1)
  • 2017年12月 (2)
  • 2017年08月 (1)
  • 2017年06月 (1)
  • 2017年03月 (1)
  • 2017年01月 (1)
  • 2016年12月 (1)
  • 2016年11月 (1)
  • 2016年10月 (1)
  • 2016年08月 (1)
  • 2016年05月 (2)
  • 2016年03月 (3)
  • 2016年02月 (1)
  • 2016年01月 (2)
  • 2015年12月 (4)
  • 2015年11月 (1)
  • 2015年10月 (9)
  • 2015年09月 (1)
  • 2015年08月 (2)
  • 2015年07月 (5)
  • 2015年05月 (1)
  • 2015年04月 (4)
  • 2015年03月 (1)
  • 2015年01月 (2)
  • 2014年12月 (5)
  • 2014年10月 (6)
  • 2014年09月 (4)
  • 2014年08月 (4)
  • 2014年07月 (7)
  • 2014年06月 (9)
  • 2014年05月 (8)
  • 2013年09月 (1)
  • 2013年08月 (8)
  • 2013年07月 (6)
  • 2013年06月 (17)
  • 2013年05月 (8)
  • © 2024 阅心笔记 . Powered By Typecho,Theme By Cho
    本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议. This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.