如何在Nginx中配置多个HTTPS域名

  介绍

本篇文章为大家展示了如何在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/> 如何在Nginx中配置多个HTTPS域名