Let's Encrypt的通配符证书当然香,但要90天延期,再就是浏览器兼容性么,还差点。

许多服务商都提供免费的SSL证书,但缺点是只能单域名或者单子域名,比如tingtao.org和www.tingtao.org就需要做两个证书。

这样一来有点尴尬的是,要么Nginx里面设置两个站点,要么其中一个做转发,有点麻烦。

我搜了一圈找到了合理的方法,试用挺久了,很爽。

配置很简单,先看相关的配置内容:

server_name  tingtao.org www.tingtao.org ;
listen     443 ssl;
listen     [::]:443 ssl;
ssl_certificate /var/www/ca/${ssl_server_name}/Nginx/1_${ssl_server_name}_bundle.crt ;
ssl_certificate_key /var/www/ca/${ssl_server_name}/Nginx/2_${ssl_server_name}.key ;

没错,只需要改动下面的两行就行,解释一下:

配置文件里用${ssl_server_name}来代替对应的“主机名”,这个主机名是浏览器提交给web服务器的,在这里也就是nginx。

比如我两个证书的根目录分别为

/var/www/ca/tingtao.org/Nginx/
/var/www/ca/www.tingtao.org/Nginx/

因为是在同一服务商做的证书,所以文件结构是相同的,那么如此这般配置,就可以让不同域名的SSL证书服务于同一个站点,而不用做成多个站点+多开php-fpm进程,挺爽的。

当然,如果你证书的文件名跟我的不同,对应调整即可。

 

作者 听涛

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注