Tencent SSL 数字证书安装部署

news/2024/7/12 3:34:03 标签: https, http, ssl, nginx
http://www.w3.org/2000/svg" style="display: none;">


目录

    • 前言
    • 一、SSL 证书购买
    • 二、配置监听器
    • 三、Nginx SSL 配置
    • FAQ

前言

之前写了一篇关于 SSL 证书的文章《Nginx 自签证书实现80转443》,不过这是自签证书的形式进行部署的,尽管能正常访问,但依然显示是不安全的,因为自签证书是得不到认可的。因开发人员需要 https>https 方式请求(对接各种数据),我们公司使用的是腾讯云服务器,为满足开发需求,于是就在腾讯云上购买了一个免费的 SSL 证书,并进行相关的部署配置,接下来简单说一下部署配置过程和要注意的相关事项。

一、SSL 证书购买

1、域名解析

首先你得有域名和云服务器,并做了对应的域名解析(主域名和子域名),如果你有用到负载均衡器(CLB),该负载均衡会有对应的 vip,也是需要事先把你得主域名和子域名解析到负载均衡 vip,这里我以负载均衡的形式进行演示。

2、购买 SSL证书

购买方式请参考腾讯云文档《域名型(DV)免费 SSL 证书申请流程》,该文档记录得很详细,免费证书提供二级域名证书申请,而且只能申请单个域名证书,而不能申请泛域名证书(除非购买付费证书)。其主要步骤如下:

https>https://img-blog.csdnimg.cn/img_convert/0894b8187682c8f55315fecb94779b0d.png#pic_center" alt="在这里插入图片描述" />

  • 选择证书类型:TrustAsia TLS RSA CA;
  • 填写证书内容
    • 提交资料:选择加密算法、绑定的域名、申请邮箱、备注、私钥等。注意:如需部署腾讯云负载均衡、CDN 等云服务,请勿填写私钥密码。
    • 选择验证方式:自动添加 DNS、DNS 验证、文件验证。注意:自2021年12月01日起,对于使用文件验证方式的域名,只能为当前被验证的域名签发证书,不支持签发通配符 SSL 证书和其下级子域名 SSL 证书。我这里使用的是【自动添加 DNS】,该方式的限制条件:须使用腾讯云 DNS 解析 DNSPod 的域名。
    • 验证域名:如果选择了【自动添加 DNS】,它会自动完成域名所有权验证。
    • 签发证书:验证通过后会签发对应的域名证书。

3、下载证书到本地并上传至服务器

https>https://img-blog.csdnimg.cn/img_convert/7b9d6194395e8054e8db6a6a1e02b761.png#pic_center" alt="在这里插入图片描述" />

二、配置监听器

登录腾讯云负载均衡控制台配置监听器,配置步骤参考腾讯云文档《配置 HTTPS 监听器》,CLB 与后端服务器的协议选用 HTTP/80。想要 httphttps>https 都能访问,也需要同时配置这两个监听器。由于篇幅较长,不再做详细概述,如要了解均衡方式、会话保持、重定向等,可参考腾讯云文档《负载均衡》。

三、Nginx SSL 配置

1、证书内容

各类服务器系统证书 SSL 安装部署,我使用的是 Linux 系统的 Nginx 方式进行安装部署,下图为证书所包含的内容,可以看到该证书可应用于 Apache、IIS、Nginx、Tomcat,根据实际情况选择对应的服务即可。

https>https://img-blog.csdnimg.cn/img_convert/167260f5ce38fcfc1af1043bd4e91d7a.png#pic_center" alt="在这里插入图片描述" />

2、Nginx 配置

这里有几种方式可选择:

  • 直接以 https>https 形式访问:以腾讯云为例子

    https>https://img-blog.csdnimg.cn/img_convert/f91cc34659a4b2be02a5e6069c180447.png#pic_center" alt="在这里插入图片描述" />

    server {
        # SSL 访问端口号为 443
        listen 443 ssl; 
        # 填写绑定证书的域名
        server_name cloud.tencent.com; 
        # 证书文件名称(若证书没和nginx配置文件在同级目录下,则须使用绝对路径)
        ssl_certificate 1_cloud.tencent.com_bundle.crt; 
        # 私钥文件名称(若私钥没和nginx配置文件在同级目录下,则须使用绝对路径)
        ssl_certificate_key 2_cloud.tencent.com.key; 
        ssl_session_timeout 5m;
        # 请按照以下协议配置
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
        # 请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        location / {
            # 网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
            root html; 
            index  index.html index.htm;
        }
    }
    
    nginx -t          # 看看语法是否有错(有错的话需要先解决错误,否则修改的配置不生效)
    nginx -s reload   # 重载Nginx
    
  • httphttps>https:以腾讯云为例子

    https>https://img-blog.csdnimg.cn/img_convert/33e36e01f101c2ca8be916607fd0e867.png#pic_center" alt="在这里插入图片描述" />

    server {
    listen 443 ssl;
    # 填写绑定证书的域名
    server_name cloud.tencent.com; 
    # 证书文件名称(若证书没和nginx配置文件在同级目录下,则须使用绝对路径)
    ssl_certificate  1_cloud.tencent.com_bundle.crt; 
    # 私钥文件名称(若私钥没和nginx配置文件在同级目录下,则须使用绝对路径)
    ssl_certificate_key 2_cloud.tencent.com.key; 
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
       # 网站主页路径。此路径仅供参考,具体请您按照实际目录操作。  
       root html;
       index index.html index.htm;
    }
    }
    server {
    listen 80;
    # 填写绑定证书的域名
    server_name cloud.tencent.com; 
    # 把http的域名请求转成https>https(永久重定向)
    return 301 https>https://$host$request_uri; 
    }
    
    nginx -t          # 看看语法是否有错(有错的话需要先解决错误,否则修改的配置不生效)
    nginx -s reload   # 重载Nginx
    
  • httphttps>https 均可访问:以腾讯云为例子,也可参考我前面的博文《Nginx 自签证书实现80转443》。

    https>https://img-blog.csdnimg.cn/img_convert/c10f346b3ffb872c86954ced3dc628d2.png#pic_center" alt="在这里插入图片描述" />

    server {
    listen 80;
    listen 443 ssl;
    # 填写绑定证书的域名
    server_name cloud.tencent.com; 
    # 证书文件名称(若证书没和nginx配置文件在同级目录下,则须使用绝对路径)
    ssl_certificate  1_cloud.tencent.com_bundle.crt; 
    # 私钥文件名称(若私钥没和nginx配置文件在同级目录下,则须使用绝对路径)
    ssl_certificate_key 2_cloud.tencent.com.key; 
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
       # 网站主页路径。此路径仅供参考,具体请您按照实际目录操作。  
       root html;
       index index.html index.htm;
    }
    }
    
    nginx -t          # 看看语法是否有错(有错的话需要先解决错误,否则修改的配置不生效)
    nginx -s reload   # 重载Nginx
    

FAQ

  • 域名解析问题

    在申请 SSL 证书前,需对证书要绑定的域名进行域名解析,目的是为了域名验证时进行自动添加 DNS,否则可能会导致域名所有权验证失败,从而无法签发证书。

  • 监听器配置问题

    SSL 证书签发后,负载均衡器需配置 HTTPS 监听器,并绑定相应的后端服务器(看其健康状态),负载均衡器与后端服务器以 HTTP 形式通信即可。

  • 端口过滤问题

    Nginx 配置好后,还需注意端口是否开放问题,这个端口开放是负载均衡器的,编辑负载均衡器的安全组,放开 443 端口,这里也需要注意,有的公司内部是对端口做限制的,也需要公司内部进行放开,要不然你们公司内部是无法访问的,而公司外部的其他人员都是可以正常访问的。这里提供一个端口、解析检测的方法,大家可以参考:以 www.baidu.com 为例

    (1)如果你 SSL 证书绑定的域名无法访问页面时,可用 dig 命令看看解析是否正确。

    https>https://img-blog.csdnimg.cn/img_convert/5c72b9afd9d6b0eec6985fa4cb82e894.png#pic_center" alt="在这里插入图片描述" />

    (2)如果上述解析没问题,但依然不能访问,再使用 nmap 进行端口扫描,看看端口是否被过滤掉了。前提你的服务已监听了该端口(netstat -lntp 查看)

    https>https://img-blog.csdnimg.cn/img_convert/71615c8ee50ee073a1cfac93bf51e20d.png#pic_center" alt="在这里插入图片描述" />

<点击跳转至开头>


http://www.niftyadmin.cn/n/1865207.html

相关文章

HASHDB:一个简单的KeyValue存储系统原型

1、HashDB是什么&#xff1f; HashDB是一个简单的KeyValue存储系统原型&#xff0c;提供基本的<key, value>二元组的数据存储与读取功能&#xff0c;亦即当前被广为推崇的NoSQL存储系统。最初想到设计这个小系统&#xff0c;完全是出于偶然。本人维护着一个轻量级的开源重…

分布式文件系统元数据服务模型

随着非结构化数据的爆炸&#xff0c;分布式文件系统进入了发展的黄金时期&#xff0c;从高性能计算到数据中心&#xff0c;从数据共享到互联网应用&#xff0c;已经渗透到数据应用的各方各面。对于大多数分布式文件系统(或集群文件系统&#xff0c;或并行文件系统)而言&#xf…

TDengine 在IT运维监控领域的应用

目录前言一、TD 特点二、安装部署2.1 部署2.2 验证三、应用领域3.1 运维监控3.2 远端扩展总结前言 TDengine 由北京涛思数据科技有限公司&#xff08;TAOS Data&#xff09;自主研发&#xff0c;而且不依赖于任何开源或第三方软件&#xff0c;拥有自主的知识产权。其应用领域涉…

CentOS 系统根目录 /dev/mapper/cl-root 100% 耗尽的解决方案

1、问题描述 前段时间在公司内部部署了一套 CentOS 系统来做一些相关的内部测试&#xff0c;根目录仅 50G 空间大小。我在上面搭建了一套监控系统&#xff08;用于测试&#xff09;&#xff0c;后面因其他工作就忘记停掉数据采集插件&#xff0c;导致有大量的日志输出&#xf…

相似数据检测算法

相似数据检测算法对给定的一对数据序列计算两者之间的相似度([0,1], 1表示完全相同)或距离([0, ), 0表示完全相同)&#xff0c;从而度量数据之间的相似程度。相似数据检测在信息科学领域具有非常重要的应用价值&#xff0c;比如搜索引擎检索结果的聚类与排序、数据聚类与分类、…

你真的了解虚拟化技术吗?

目录前言一、什么是虚拟化&#xff1f;二、虚拟化的特点三、虚拟化的安全四、虚拟化技术分类及应用4.1 网络功能虚拟化4.2 服务器虚拟化4.3 操作系统虚拟化五、虚拟化的管理总结前言 从操作系统到应用&#xff0c;每一个新软件总会不断产生新的需求&#xff0c;它需要更多的数…

创建Glusterfs分布式RAID10卷

Glusterfs3.2.4/5支持五种Volume&#xff0c;即Distribute卷、Stripe卷、Replica卷、Distribute stripe卷和Distribute replica卷&#xff0c;这五种卷可以满足不同应用对高性能、高可用的需求。(1) distribute volume&#xff1a;分布式卷&#xff0c;文件通过hash算法分布到b…

Glusterfs全局统一命名空间

全局统一命名空间Glusterfs采用了全局统一命名空间设计&#xff0c;将磁盘和内存资源聚集成一个单一的虚拟存储池进行管理&#xff0c;并在此命名空间中使用NFS/CIFS等标准协议来访问应用数据。与其他分布式文件系统有所不同的是&#xff0c;GlusterFS中没有专用的元数据服务器…