使用个人测试证书(免费版)为Web站点开启HTTPS访问

更新时间:
复制为 MD 格式

如果已拥有已通过ICP备案的域名,可以在网站正式上线前免费申请个人测试证书,并部署到Web服务器以启用HTTPS加密访问,用于测试环境的安全验证。

流程概述

在服务器中部署个人测试证书包含以下三个步骤:

  1. 领取个人测试证书:获取个人测试证书的使用资格。

  2. 提交证书申请:填写证书相关信息并提交审核,等待证书签发。

  3. 部署证书:将签发的证书部署到Web服务器。

前提条件

  • 已完成实名认证。具体操作,请参见个人实名认证单位实名认证

  • 已在Web服务器开放443端口(HTTPS通信的标准端口)。

    • 如果您使用的是阿里云ECS服务器,请确保已经在安全组规则入方向添加TCP 443端口。具体操作,请参见管理安全组规则

    • 如果您使用的是其他云服务商或本地服务器,请确保在防火墙或安全组中开启TCP 443端口。

  • 拥有域名,且该域名已完成ICP备案。

  • 拥有该域名的DNS解析管理权限。

说明

443HTTPS的默认端口,也可根据实际需求自定义端口号。

步骤一:领取个人测试证书(免费版)

  1. 登录数字证书管理服务控制台或,在左侧导航栏,选择证书管理 > SSL证书管理 V2.0 。在个人测试证书(原免费证书)页签,单击购买证书

  2. 购买证书页面,填写购买数量,其他配置项保持默认,勾选证书服务服务协议证书技术支持服务须知,单击立即购买并完成支付。

    说明

步骤二:提交证书申请

  1. 个人测试证书(原免费证书)页签,找到目标证书订阅实例,单击操作列下的申请证书

  2. 在弹出的证书申请对话框中,填写以下信息,确认无误后单击提交审核

    1. 证书绑定域名:输入证书要绑定的域名,示例域名:www.aliyun.com

    2. CSR生成方式:选择系统生成

    3. 所在地:选择申请人所在的省份、城市和地区。

    4. 联系人:选择本次证书申请的联系人。

    5. 密钥算法:根据需求选择。密钥长度越长,加密强度越高。RSA_2048 表示 2048 位密钥的 RSA 算法。

    6. 域名验证方式:推荐选择自动DNS验证。当域名 DNS 与当前阿里云账号不一致时,可选择手动 DNS验证或文件验证方式。三种验证方式对比如下:

      验证方式

      说明

      推荐场景

      自动DNS验证

      系统自动添加DNS解析记录完成验证。仅当域名所在的云解析DNS服务与当前阿里云账号一致时可选。

      推荐使用,操作最为简便。

      手动DNS验证

      手动前往域名对应的DNS服务商,添加一条CNAMETXT类型的DNS解析记录。

      域名DNS服务与当前阿里云账号不一致时使用。

      文件验证

      在域名对应的Web应用服务器上创建指定文件来验证域名所有权。

      无法操作DNS解析时使用。

    7. 确认信息无误后,在证书申请对话框中单击提交审核

  3. 完成域名验证。个人测试证书(原免费证书)页签,找到目标证书实例,单击操作列下的验证。根据页面提示完成域名所有权验证。

    域名所有权验证成功后,证书通常在1~15分钟内完成签发。签发完成后,当前证书状态将变更为已签发。如果证书长时间未签发,请检查DNS验证配置是否正确。

    说明
    • 证书自签发之日起生效,有效期为90天。

    • 如果验证长时间未通过,例如文件内容不正确、DNS记录值不匹配或DNS验证超时,可参见域名所有权验证常见问题获取解决方案。

步骤三:部署证书到 Web 服务器

下文以CentOS 8.0 64位操作系统、Nginx 1.14.2为例说明。其他操作系统或Web服务器(如Apache、Tomcat、IIS等)的部署操作可能有所不同,详情请参见手工部署证书

  1. 下载证书文件。

    1. 个人测试证书(原免费证书)页签,找到已签发的证书,单击操作列下的下载

    2. 选择与Web服务器类型对应的证书格式(如Nginx),单击操作列下的下载,下载证书文件压缩包。

  2. 上传证书文件到服务器。

    1. Nginxconf目录下创建一个用于存放证书的目录。

      重要

      本示例中的Nginx配置目录位于/usr/local/nginx/conf。如不清楚Nginx配置目录,可执行nginx -t查看。

      #进入Nginx默认配置文件目录。
      cd /usr/local/nginx/conf  
      #创建证书目录,命名为cert。
      mkdir cert  
    2. 将解压后的证书文件上传到Nginx服务器。解压后的证书文件通常包括:

      • 证书文件(如:example.com.pem

      • 私钥文件(如:example.com.key

      说明

      您可以使用远程登录工具的本地文件上传功能来上传文件。例如PuTTYXshellWinSCP等工具。如果您使用的是阿里云云服务器 ECS,关于上传文件的具体操作,请参见上传或下载文件

  3. 配置Web服务器:编辑Nginx配置文件nginx.conf,修改与证书相关的配置。

    重要

    本示例中的Nginx配置目录位于/usr/local/nginx/conf。如不清楚nginx.conf的位置,可执行nginx -t查看。

    1. 执行以下命令,打开配置文件。

      sudo vim /usr/local/nginx/conf/nginx.conf
    2. nginx.conf中找到HTTPS server块配置。

      # HTTPS server
      #
      #server {
      #    listen       443 ssl;
      #    server_name  localhost;
      #
      #    ssl_certificate      cert.pem;
      #    ssl_certificate_key  cert.key;
      #
      #    ssl_session_cache    shared:SSL:1m;
      #    ssl_session_timeout  5m;
      #
      #    ssl_ciphers  HIGH:!aNULL:!MD5;
      #    ssl_prefer_server_ciphers  on;
      #
      #    location / {
      #        root   html;
      #        index  index.html index.htm;
      #    }
      #}
      说明

      如果nginx.confinclude指令所引用的文件中均不存在上述代码块所示的server块,请手动添加。

    3. 删除行首注释符号#,并参考以下示例调整配置。

      说明

      以下示例中已移除不安全的 TLSv1.1 协议(参见 RFC 8996),仅保留 TLSv1.2 和 TLSv1.3。

      修改完成后,按Esc键进入命令模式,输入:wq并按Enter键,保存并退出。

      server {
           #HTTPS的默认访问端口443。
           #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
           listen 443 ssl;
           #填写证书绑定的域名
           server_name <YOURDOMAIN>;
           #填写证书文件绝对路径
           ssl_certificate cert/<cert-file-name>.pem;
           #填写证书私钥文件绝对路径
           ssl_certificate_key cert/<cert-file-name>.key;
           ssl_session_cache shared:SSL:1m;
           ssl_session_timeout 5m;
           #自定义设置使用的TLS协议版本和加密套件(以下为配置示例,请自行评估是否需要配置)
           #TLS协议版本越高,HTTPS通信的安全性越高,但高版本TLS协议对浏览器的兼容性较差。
           ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
           ssl_protocols TLSv1.2 TLSv1.3;
           #表示优先使用服务端加密套件。默认开启
           ssl_prefer_server_ciphers on;
          location / {
                 root html;
                 index index.html index.htm;
          }
      }
    4. 执行以下命令,重载配置文件。

      #进入Nginx服务的可执行目录。
      cd /usr/local/nginx/sbin
      #重新载入配置文件。
      ./nginx -s reload
  4. 验证部署。

    证书部署完成后,您可通过访问证书绑定的域名验证该证书是否部署成功。

    https://yourdomain   #将yourdomain替换为您的实际域名
    • 如果浏览器地址栏出现锁形图标图标,表示证书已安装成功。

    • Chrome 117版本开始,Chrome浏览器将地址栏HTTPS锁形图标图标改为调整图标图标。单击该图标,参考以下示例,出现连接安全图标标志时,表示证书已安装成功。

      弹出的站点信息面板中显示锁图标及连接是安全的字样。

常见问题

域名验证长时间未通过怎么办?

  • 检查DNS解析记录是否正确添加,确保记录类型(CNAMETXT)和记录值与控制台提示一致。

  • DNS解析记录添加后需要一定时间才能生效,通常几分钟内生效,最长可能需要等待30分钟。

  • 如果选择文件验证,确保验证文件已放置在域名对应服务器的正确路径下,且可通过公网访问。

执行 nginx -s reload 后网站无法正常访问怎么办?

证书部署后浏览器显示"不安全"怎么办?

  • 确认证书状态为已签发,且未过期。

  • 确认浏览器访问的域名与证书绑定的域名一致。

  • 清除浏览器缓存后重新访问。