本篇文章为大家展示了如何在Nginx中配置多个HTTPS域名,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
环境:
- <李>
CentOS 7
李> <李>多个一级域名
李>开发测试过程中,因为某些原因,想要让手头的A, B域名同时指向云服务器的443端口,支持HTTPS。
Nginx支持TLS协议的SNI扩展(同一个IP上可以支持多个不同证书的域名),只需要重新安装Nginx,使其支持TLS即可。
<强>安装Nginx 强>
(根)#,wget http://nginx.org/download/nginx-1.12.0.tar.gz (根)#,tar zxvf  nginx-1.12.0.tar.gz (根)#,cd nginx-1.12.0 (根)#,。/configure ——prefix=/usr/地方/nginx ——with-http_ssl_module \ ——使用openssl=?openssl-1.0.1e \ ——with-openssl-opt=癳nable-tlsext"
备注:在安装的过程中发现,云服务器的环境中缺少一些库,下载后,重新执行Nginx的<代码>。/配置> 代码指令,具体操作如下:
(根)#,wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz (根)#,tar pcre zxvf 8.35 (根)#,yum -y  install gcc (根)#,yum -y  install gcc-c + + (根)#,yum install  -y zlib-devel (根)#,。/configure ——prefix=/usr/地方/nginx ——with-http_ssl_module \ ——使用openssl=?openssl-1.0.1e \ ——with-openssl-opt=癳nable-tlsext" \ ——with-pcre=?pcre - 8.35
<强>配置Nginx 强>
在购买域名的时候,如果域名提供商有免费的SSL证书,就直接用,如果没有的话,可以使用还是# 39;s Encript生成免费的CA证书。
打开Nginx的配置:<代码> vi/etc/nginx/nginx.参看代码>
,,… server {才能 ,,,listen ,,, 443, ssl; ,,,listen ,,,[:]: 443年,ssl; ,,,server_name abc.com; ,,,root ,,,,/usr/share/nginx/html; ,,,ssl_certificate “/根/键/abc.com.pem"; ,,,ssl_certificate_key “/根/键/abc.com.private.pem"; ,,,include /etc/nginx/default.d/* . conf; ,,,的位置/,{ ,,,} ,,,error_page 404年,html/404.; ,,,,,的位置=,/40 x.html { ,,,} ,,,error_page , 500, 502, 503, 504,/50 x.html; ,,,,,的位置=,/50 x.html { ,,,} ,,} server {才能 ,,,listen ,,, 443, ssl; ,,,listen ,,,[:]: 443年,ssl; ,,,server_name def.com; ,,,root ,,,,/usr/share/nginx/html; ,,,ssl_certificate “/根/键/def.com.pem"; ,,,ssl_certificate_key “/根/键/def.com.private.pem"; ,,,include /etc/nginx/default.d/* . conf; ,,,的位置/,{ ,,,} ,,,error_page 404年,html/404.; ,,,,,的位置=,/40 x.html { ,,,} ,,,error_page , 500, 502, 503, 504,/50 x.html; ,,,,,的位置=,/50 x.html { ,,,} 以前,,}>配置完成后,重新加载Ngixn: <代码> nginx - s重载代码>
<强>申请免费的CA证书强>
对于没有SSL证书的情况,可以用下面的方法免费获得CA证书——还是# 39;s Encript。
<强>步骤1:>强安装还是# 39;s加密官方客户端——CetBot
(根)#,yum install -y epel-releasesudo (根)#,yum install  -y certbot<强>步骤2:>强配置Nginx的配置文件,在服务器模块(监听80端口的)添加下面配置:
certbot在验证服务器域名的时候,会生成一个随机文件,然后certbot的服务器会通过HTTP访问你的这个文件,因此要确保你的Nginx配置好,以便可以访问到这个文件。
server { ,,listen ,,, 80, default_server; ,,… 的位置才能^ ~,/.well-known/acme-challenge/, {,, ,,,default_type “文本/plain";,, ,,,root ,,/usr/share/nginx/html; ,,} 的位置才能=,/.well-known/acme-challenge/, {,, ,,,return 404; ,,} }重新加载Nginx: <代码> Nginx - s重载代码>
<强>步骤3:>强申请SSL证书
(根)#,certbot certonly ——webroot -w /usr/share/Nginx/html/, -d your.domain.com安装过程中,会提示输入邮箱,用于更新CA证书的。
安装成功后,默认会在<代码>/etc/letsencrypt/生活/your.domain.com/> 代码会生成CA证书。
如何在Nginx中配置多个HTTPS域名