侧边栏壁纸
博主头像
老十三

敬年少热诚!

  • 累计撰写 31 篇文章
  • 累计创建 36 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

Nginx服务器SSL证书安装部署

老十三
2022-01-21 / 0 评论 / 20 点赞 / 1,323 阅读 / 2,150 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-26,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Nginx服务器SSL证书安装部署

SSL证书也称为服务器证书,是遵守全球统一的严格身份认证的SSL协议的一种数字证书,由全球信任的证书颁发机构(CA)验证服务器身份后颁发。将SSL证书安装在网站服务器上,可实现网站身份验证和数据加密传输双重功能。

用户通过http协议访问网站时,浏览器和服务器之间是明文传输,这就意味着用户填写的密码、帐号、交易记录等机密信息都是明文,随时可能被泄露、窃取、篡改,被黑客加以利用。安装SSL证书后,使用https协议加密访问网站,可激活客户端浏览器到网站服务器之间的 SSL加密通道 (SSL协议),实现高强度双向加密传输,防止传输数据被泄露或篡改钓鱼欺诈网站泛滥。

同时,网站部署全球信任的SSL证书后,浏览器内置安全机制,实时查验证书状态,通过浏览器向用户展示网站认证信息,让用户轻松识别网站真实身份,防止钓鱼网站仿冒。

操作场景

  • Nginx 版本为 nginx/1.18.0

  • 服务器的操作系统为 CentOS 7,由于操作系统的版本不同,详细操作步骤略有区别

  • 安装 SSL 证书前,需要服务器安全组放行443端口,如果用了运维工具如宝塔面板的话,在运维工具防火墙里也要放行443端口,以避免证书安装后无法启用 HTTPS

  • 本教程所使用服务器为腾讯云服务器,证书是在腾讯云控制台SSL证书里申请的

操作步骤

证书安装

  • 下载证书并解压

    解压缩后,可获得相关类型的证书文件:

    www.test.com_bundle.crt 证书文件

    www.test.com_bundle.pem 证书文件

    www.test.com.key 私钥文件

    www.test.com.csr CSR 文件

  • 登录远程服务器并将 www.test.com_bundle.crt 证书文件和 www.test.com.key 私钥文件从本地上传到 Nginx 服务器的 /usr/local/nginx/conf 目录下

    注意:此路径为 Nginx 默认安装目录,根据自己实际情况操作

  • 编辑 Nginx 根目录下的 conf/nginx.conf 文件

     vim /usr/local/nginx/conf/nginx.conf
    

    由于版本问题,配置文件可能存在不同的写法

    例如:Nginx 版本为 nginx/1.15.0 以上用 listen 443 ssl 代替 listen 443ssl on

    server {
            #SSL 访问端口号为 443
            listen 443 ssl; 
            #填写绑定证书的域名
            server_name www.test.com; 
            #证书文件名称
            ssl_certificate www.test.com_bundle.crt; 
            #私钥文件名称
            ssl_certificate_key www.test.com.key; 
            ssl_session_timeout 5m;
            #按照以下协议配置
            ssl_protocols TLSv1.2 TLSv1.3; 
            #按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
            ssl_prefer_server_ciphers on;
            location / {
                #网站主页路径。此路径仅供参考,具体按照实际目录操作。
                #例如,网站运行目录在/etc/www下,则填写/etc/www。
                root html; 
                index  index.html index.htm;
        }
    }
    
  • Nginx 根目录下验证配置文件

    ./sbin/nginx -t
    

    若存在问题,就重新配置或者根据提示修改存在问题

  • 重启 Nginx

    重启之后就可以使用 https://www.test.com 进行访问


HTTP自动跳转HTTPS

  • 如果需要将 HTTP 请求自动重定向到 HTTPS的话,可以通过以下操作设置

    server {
            #SSL 访问端口号为 443
            listen 443 ssl; 
            #填写绑定证书的域名
            server_name www.test.com; 
            #证书文件名称
            ssl_certificate www.test.com_bundle.crt; 
            #私钥文件名称
            ssl_certificate_key www.test.com.key; 
            ssl_session_timeout 5m;
            #按照以下协议配置
            ssl_protocols TLSv1.2 TLSv1.3; 
            #按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
            ssl_prefer_server_ciphers on;
            location / {
                #网站主页路径。此路径仅供参考,具体按照实际目录操作。
                #例如,网站运行目录在/etc/www下,则填写/etc/www。
                root html; 
                index  index.html index.htm;
        }
    }
    server {
            listen 80;
            #填写绑定证书的域名
            server_name www.test.com; 
            #把http的域名请求转成https
            return 301 https://$host$request_uri; 
    }
    
  • 修改完成后重启 Nginx

    当在浏览器输入 http://www.test.com 进行访问时:

    会自动跳转为 https://www.test.com

20

评论区