nginx 80 映射web服务,并安装使用https ssl证书

本文档指导您如何在 Nginx 服务器中安装 SSL 证书。

nginx version: nginx/1.18.0
SSL TrustAsia TLS RSA CA RSA 2048

  • 本文档以证书名称 cloud.tencent.com 为例。
  • Nginx 版本以 nginx/1.18.0 为例。
  • 当前服务器的操作系统为 CentOS 7,由于操作系统的版本不同,详细操作步骤略有区别。
  • 安装 SSL 证书前,请您在 Nginx 服务器上开启 “443” 端口,避免证书安装后无法启用 HTTPS。具体可参考 服务器如何开启443端口?
  • SSL 证书文件上传至服务器方法可参考 如何将本地文件拷贝到云服务器

前提条件

  • 已准备文件远程拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。
  • 已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。
  • 已在当前服务器中安装配置 Nginx 服务。
  • 安装 SSL 证书前需准备的数据如下:
    名称说明
    服务器的 IP 地址服务器的 IP 地址,用于 PC 连接到服务器。
    用户名登录服务器的用户名。
    密码 登录服务器的密码。

操作步骤

证书安装

  • 请在 SSL 证书管理控制台 中选择您需要安装的证书并单击下载
  • 在弹出的 “证书下载” 窗口中,服务器类型选择 Nginx,单击下载并解压缩 cloud.tencent.com 证书文件包到本地目录。
    解压缩后,可获得相关类型的证书文件。其中包含 cloud.tencent.com_nginx 文件夹:
    • 文件夹名称cloud.tencent.com_nginx
    • 文件夹内容
      • cloud.tencent.com_bundle.crt 证书文件
      • cloud.tencent.com_bundle.pem 证书文件(可忽略该文件)
      • cloud.tencent.com.key 私钥文件
      • cloud.tencent.com.csr CSR 文件

说明:

CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件.

  • 使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Nginx 服务器。
  • 将已获取到的 cloud.tencent.com_bundle.crt 证书文件和 cloud.tencent.com.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf 目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。
  • 远程登录 Nginx 服务器。例如,使用 “PuTTY” 工具 登录。
  • 编辑 Nginx 根目录下的 conf/nginx.conf 文件。修改内容如下:
    • 此操作可通过执行 vim /usr/local/nginx/conf/nginx.conf 命令行编辑该文件。
    • 由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443ssl on
    server {
            listen       443 ssl;
    	#填写绑定证书的域名
            server_name  ***.com;
    
    	#证书文件名称
            ssl_certificate      ***.com_bundle.pem;
    	#私钥文件名称
            ssl_certificate_key  ***.com.key;
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
    	#请按照以下协议配置
    	ssl_protocols TLSv1.2 TLSv1.3;
            #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
    	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    	#ssl_ciphers  HIGH:!aNULL:!MD5;
    
            ssl_prefer_server_ciphers  on;
    
            location / {
                root   html;
    	    proxy_pass http://localhost:***;
    	    #限流可以不加
    	    limit_req zone=myRateLimit;
                index  index.html index.htm;
        }
    }
    

    在 Nginx 根目录下,通过执行以下命令验证配置文件问题。

    nginx -t
    
    若存在,请您重新配置或者根据提示修改存在问题。
    若不存在,请执行 以下步骤。
    

    重启 Nginx,即可使用 https://***.com 进行访问。

    HTTP 自动跳转 HTTPS 的安全配置(可选)

    如果您需要将 HTTP 请求自动重定向到 HTTPS。您可以通过以下操作设置:

    根据实际需求,选择以下配置方式:

    • 在页面中添加 JS 脚本。
    • 在后端程序中添加重定向。
    • 通过 Web 服务器实现跳转。
    • Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加 return 301 https:// h o s t host hostrequest_uri;,即可将默认80端口的请求重定向为 HTTPS。修改如下内容:

    说明: 未添加注释的配置语句,您按照下述配置即可。 由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为
    nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。

     server {
         listen       80;
    
    #填写绑定证书的域名
          server_name ***.com; 
    
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
    
    #把http的域名请求转成https
          return 301 https://$host$request_uri;
      }
     # HTTPS server
      #
      server {
          listen       443 ssl;
    #填写绑定证书的域名
          server_name  liyahui.xyz;
    
    #证书文件名称
          ssl_certificate      liyahui.xyz_bundle.pem;
    #私钥文件名称
          ssl_certificate_key  liyahui.xyz.key;
          ssl_session_cache    shared:SSL:1m;
          ssl_session_timeout  5m;
    
    	#请按照以下协议配置
    	ssl_protocols TLSv1.2 TLSv1.3;
    	      #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
    	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    	#ssl_ciphers  HIGH:!aNULL:!MD5;
    
          ssl_prefer_server_ciphers  on;
    
          location / {
              root   html;
    		   proxy_pass http://localhost:***;
    			#限流操作
    		   limit_req zone=myRateLimit;
              index  index.html index.htm;
          }
      }
    
    
  • 若修改完成,重启 Nginx。即可使用 http://cloud.tencent.com 进行访问。

  • 我的总体配置文件,敏感字符以脱敏[***]

    
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    	
        #限流机制
        limit_req_zone $binary_remote_addr zone=myRateLimit:10m rate=1r/s;
        
        server {
            listen       80;
    
    	#填写绑定证书的域名
            server_name ***;
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    	#把http的域名请求转成https
            return 301 https://$host$request_uri;
        }
    
        #图床搭建映射
        server {
    
    	listen       8000;
            server_name  localhost2;
    
    	 location ~ .*\.(gif|jpg|jpeg|png|jfif)$ {
                 root         /my/imgs/;
                 autoindex    on;
                 #配置限流
    	     limit_req zone=myRateLimit;
    	 }
        }
    
        # HTTPS server
        #
        server {
            listen       443 ssl;
    	#填写绑定证书的域名
            server_name  ***;
    
    	#证书文件名称
            ssl_certificate      ***_bundle.pem;
    	#私钥文件名称
            ssl_certificate_key  ***.key;
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
    	#请按照以下协议配置
    	ssl_protocols TLSv1.2 TLSv1.3;
            #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
    	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    	#ssl_ciphers  HIGH:!aNULL:!MD5;
    
            ssl_prefer_server_ciphers  on;
    
            location / {
                root   html;
    	    proxy_pass http://localhost:***;
    	    #配置限流
    	    limit_req zone=myRateLimit;
                index  index.html index.htm;
            }
        }
    
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DataPulse-辉常努腻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值