首页 从 HTTP 到 HTTPS 让网站更安全

从 HTTP 到 HTTPS 让网站更安全

更新时间: 2024-10-12 10:39:18

手动部署

100

https://www.aliyun.com/solution/tech-solution/ssl

方案概览

在ECS上部署Web应用是非常常见的业务场景,用户使用HTTP请求访问网站域名,浏览器通常会显示“感叹号”,提醒用户当前访问的站点存在安全风险。使用HTTP明文请求的潜在风险如下:

  • 数据泄露及篡改:HTTP数据传输过程是以明文形式,并未加密,在传输路径上的监控者,转发者都可以直接看到数据内容,包括用户的敏感信息。可能会造成数据泄露及数据被恶意篡改。

  • 身份伪装:HTTP协议无法验证服务端的身份。攻击者可轻松假冒服务端,获取用户数据。

  • 搜索引擎排名:搜索引擎会降低不安全站点的权重,降低网站内容的搜索排名。

为了解决该问题,需要网站支持HTTPS协议访问。HTTPS协议可以防偷窥、防篡改及完成服务端身份验证等,可以保证请求全链路的数据访问安全。本案例为您介绍如何在ECS上搭建Web应用以及在Nginx服务器上部署SSL证书开启HTTPS安全访问。

方案架构

整体架构图如下图所示。

HTTP 到 HTTPS备份 2@2x.png

本方案的技术架构包括以下基础设施和云服务:

  • 1个专有网络VPC和1个交换机:构建云上私有网络。

  • 1台云服务器ECS:开放外网访问并部署Nginx服务,作为Web站点。

  • 1个SSL证书:需要将申请的证书部署到Nginx服务器。

部署准备

10

开始部署前,按以下指引完成账号申请、账号充值,并准备好已经备案的域名。

准备账号

  1. 如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。

  2. 为阿里云账号充值

    1. 本方案的服务器部署默认使用按量付费资源,使用按量付费资源需要确保账户余额不小于100元。

    2. 如果您申请免费证书来完成本方案的部署和体验,预计产生费用不超过1元。(假设您选择本文示例规格资源,且资源运行时间不超过120分钟。实际操作过程中可能会因您使用的资源规格和流量差异,导致费用有所不同,请以控制台显示的实际报价以及最终账单为准)

      序号

      产品

      计费项

      规格

      地域

      预估费用参考

      1

      云服务器 ECS

      ECS配置费

      • 实例:ecs.e-c1m1.large(2 vCPU 2 GiB,抢占型实例)

      • 系统盘:ESSD云盘 40GiB

      华东1(杭州)

      0.046/元/时

      2

      云服务器 ECS

      公网流量费

      按使用流量计费:带宽峰值5 Mbps

      华东1(杭州)

      公网流量费:阶梯计费,每月前200GB免费

    3. 如果您购买付费正式证书,则除了以上的ECS部署资源费,还会产生证书购买费用,根据您选择的证书种类、品牌和时间期限而定。

  3. 需要准备好已经完成备案的域名。

创建ECS实例并部署Web服务

20

说明
  • 如果您已创建ECS实例并配置Web服务,可跳过该步骤,直接执行下一步。

  • 本步骤以操作系统Alibaba Cloud Linux 3为例,指导您如何部署Web服务(Nginx 1.20.1),其他操作系统教程略有差异。更多建站教程,请参见建站零基础入门

操作步骤

  1. 前往实例创建页,选择自定义购买页签,按界面提示创建一个ECS实例(假设为ECS_01)。

    请注意以下参数:

    • 付费类型:抢占式实例。

      重要
      • 为节省测试成本,本文示例采用抢占式实例,相对按量付费实例有一定的折扣。默认情况,您可以稳定持有抢占式实例至少一小时。一小时后,当市场价格高于您的出价或实例库存不足时,抢占式实例会被自动释放,请做好数据备份工作。

      • 如果您需要长期稳定持有ECS实例,付费类型建议选择包年包月或按量付费。

    • 地域:建议选择靠近您业务的地域,本文示例为华东1(杭州)。

    • 镜像:Alibaba Cloud Linux 3。

    • 公网 IP:勾选分配公网 IPv4 地址。

    • 安全组:新建普通安全组,安全组规则入方向添加TCP 22、80、443端口。

    • 登录凭证:选择自定义密码,登录名选择root并设置登录密码。

    确认好价格之后单击确认下单

  2. 部署Web服务(本方案以部署一个电商页面为例)

    1. 在ECS控制台的实例列表,单击目标实例右侧的远程连接,通过Workbench远程登录服务器。远程连接ECS实例。具体操作,请参见通过密码或密钥认证登录Linux实例

    2. 执行以下命令,安装网站示例。

      curl -fsSL https://help-static-aliyun-doc.aliyuncs.com/tech-solution/install-ssl.sh|bash
    3. 在ECS控制台的实例详情页复制配置信息中的公网IP,拷贝到浏览器中,可正常访问网站服务,表示Web服务部署成功。

      image

  3. 配置域名解析。

    1. 准备好已经完成备案的域名。

    2. 登录云解析DNS控制台配置DNS解析,将域名解析地址指向ECS暴露的公网IP地址。详细操作步骤请参见快速添加网站解析。(如果您域名对应的DNS域名解析服务不在阿里云,请您前往域名对应的DNS域名解析商添加解析记录。)

    3. 解析生效时间10分钟,通过域名访问Web应用,如:http://ssl-demo.aliyundoc.com,若结果和通过公网服务IP方式相同,则表示域名解析配置成功。

申请并下载SSL证书

35

重要

阿里云数字证书管理服务支持免费SSL证书和付费SSL证书。免费SSL证书一般仅用于个人网站或测试使用,不建议业务成熟的企业类型网站使用。两类证书在安全等级、兼容性、支持的证书类型、保险和保障、证书有效期及技术支持等方面均有区别。详情请参见个人测试证书说明

操作步骤

申请免费证书

  1. 领取免费证书额度。

    1. 登录数字证书管理服务控制台

    2. 在左侧导航栏,选择证书管理 > SSL证书管理

    3. 个人测试证书(原免费证书)页签,单击立即购买

    4. 立即购买面板,参考下表购买免费证书,仔细阅读并勾选服务协议,单击立即购买并完成支付。

      配置项

      示例

      产品

      个人测试证书

      证书类型

      个人测试证书(免费版)

      服务

      保持默认

      购买数量

      保持默认

      其他服务

      不需要

  2. 提交证书申请。

    1. 返回个人测试证书(原免费证书)页签,单击创建证书

    2. 证书申请面板,配置证书参数,选中快捷签发,单击提交审核

      配置项

      说明

      证书类型

      选择个人测试证书(免费版):证书签发后有效期3个月。

      证书剩余数量/总数

      表示剩余可申请的证书个数/总共可申请的证书个数。只有当剩余可申请的证书个数不为0时,您才可以创建证书。

      域名名称

      填写该证书用于保护的网站域名。

      申请个人测试证书时,此处只可以填写一个单域名,例如,aliyundoc.com

      重要
      • 不支持后缀为特殊词的域名申请个人测试证书。例如.edu.gov.org.jp.pay.bank.live.nuclear.ru等等。正式证书无此限制。如果您需要为后缀为特殊词的域名申请证书,您只能申请正式证书。

      • 不支持为公网IP申请个人测试证书。仅Globalsign、GeoTrust、vTrus、CFCA品牌的OV单域名证书支持绑定IP。具体操作,请参见购买SSL证书

      • 如需一次操作申请多个域名的证书,需购买正式证书。具体操作请参见购买SSL证书

      数量

      证书数量,默认为1,不支持增加。

      快捷签发

      说明

      快捷签发是指在当前步骤填写证书申请资料并提交审核。

      域名验证方式

      • 如果您当前的阿里云账号与域名的DNS云解析服务所在账号一致,申请证书时,阿里云数字证书管理服务将会自动识别,并默认选择自动DNS验证方式,且不支持修改,提交审核后,系统会自动进行DNS验证。

      • 如果您当前的阿里云账号与域名的DNS云解析服务所在账号不一致,您可以选择以下任意一种方式进行域名所有权验证。

        • 手动DNS验证:您需要手动修改域名的DNS解析记录,并在证书绑定域名的域名控制台,添加一条解析记录用于域名所有权验证。

        • 域名授权自动化验证:您需要手动在对应的DNS域名解析服务商,添加一条CNAME类型的解析记录用于域名所有权验证。添加成功后,后续申请对应域名的SSL证书时可以直接选择该方式,且无需再添加域名解析记录。具体操作,请参见域名所有权验证

        • 文件验证:您需要手动从数字证书管理服务控制台下载一个专用的证书验证文件,然后将该文件上传到站点服务器的指定验证目录。

      联系人

      从下拉列表中选择本次证书申请的联系人(包含邮箱、手机号码等联系信息)。

      重要

      收到证书申请请求后,CA中心会向联系人邮箱发送证书申请验证邮件或者通过联系人手机号码沟通审核相关事宜。因此,请务必确保联系人信息准确且有效。

      如果您未创建过联系人,可以单击新建联系人,新建一个联系人。数字证书管理服务会保存新建的联系人信息,方便您下次使用。关于新建联系人的具体配置,请参见管理联系人

      所在地

      选择申请人所在城市或地区。

      密钥算法

      证书使用的密钥算法。

      默认选择为RSA,且不支持修改。RSA算法是目前在全球应用广泛的非对称加密算法,兼容性好。

      CSR生成方式

      CSR(Certificate Signing Request)文件是您的证书请求文件。该文件包含您的SSL证书信息,例如,证书绑定的域名、证书持有主体的名称及地理位置信息等。

      您向CA中心提交证书申请时,必须提供CSR。CA中心审核通过您的证书申请后,将使用其根CA私钥为您提供的CSR签名,生成SSL证书公钥(即签发给您的SSL证书)。SSL证书的私钥即您在生成CSR时同时生成的私钥。

      您可以选择以下CSR生成方式:

      • 系统生成:表示由数字证书管理服务自动使用您在密钥算法指定的加密算法生成CSR文件(您可以在证书签发后下载证书和私钥)。推荐您使用该方式。

      • 手动填写:表示您是使用OpenSSL或Keytool等工具手动生成的CSR和私钥文件,并将CSR内容复制粘贴到CSR文件内容(私钥文件由您自行保管)。关于如何制作CSR和私钥文件,请参见如何制作CSR文件

        重要
        • CSR生成方式选择手动填写后,您将无法在数字证书管理控制台将该证书部署到阿里云产品中。

        • 申请国密算法证书且选择手动填写CSR时,由于私钥不在阿里云,获得的加密证书需要私钥配合完成解密,请您联系私钥生成方协助完成解密工作。

        • 您提供的CSR内容正确与否直接关系到证书申请流程是否能顺利完成,建议您使用数字证书管理服务自动生成的CSR(即选择系统生成方式),避免因提供的CSR内容不正确导致证书审核失败。

        • 请确保您手动填写的CSR使用的加密算法与密钥算法中选择的算法相同,否则您将无法顺利提交证书审核。 如果您不清楚CSR使用的加密算法,您可以通过查看CSR工具查看,具体操作,请参见查看CSR详情

        • 在制作CSR文件时请务必保存好您的私钥文件。私钥和SSL证书一一对应,一旦私钥丢失,您的SSL证书也将不可使用。阿里云不负责保管您的私钥,如果您的私钥丢失,您必须重新购买SSL证书。

      • 选择已有的CSR:表示从您在数字证书管理服务控制台创建的CSR或上传的CSR中,选择与证书绑定域名相匹配的CSR。

        您必须先使用数字证书管理服务提供的CSR管理工具手动创建CSR或上传已有的CSR,才可以使用该方式。具体操作,请参见创建CSR上传CSR

        重要

        您选择的CSR使用的加密算法需要和您在密钥算法中设置的算法相同,否则您将无法顺利提交证书审核。如果您不清楚CSR使用的加密算法或域名,您可以通过查看CSR工具查看,具体操作,请参见查看CSR详情

      CSR文件内容

      只有在CSR生成方式手动填写选择已有的CSR时,需要配置该参数。在此处填写您的CSR文件内容。

    3. 按照验证信息中的提示,完成域名所有权的验证。

      域名所有权验证成功后,证书通常会在1~2个工作日完成签发,最快10分钟内签发。证书签发后,证书状态将变更为已签发。如果SSL证书长时间未签发,请您检查DNS验证配置是否正确。域名所有权验证更多信息和常见报错,请参见域名所有权验证

      说明

      如果您未选中快捷签发,创建证书申请后,您将获得一个证书(对应要申请的证书)。您需要在该证书操作列,单击证书申请,填写证书申请信息并提交审核后,再按照该步骤进行验证。

  3. 下载免费证书。

    1. 在免费证书列表,定位到签发的证书,在操作列,单击下载

    2. 服务器类型为Nginx的操作列,单击下载,并解压SSL证书压缩包(包含PEM后缀的证书文件和KEY后缀的私钥文件)。

购买付费正式证书

  1. 登录数字证书管理服务控制台

  2. 在左侧导航栏,选择证书管理 > SSL证书管理

  3. 正式证书页签,单击购买证书

  4. 立即购买面板,参考以下说明完成购买参数配置。

    配置项

    说明

    域名名称

    填写证书绑定的网站域名。支持填写多个域名。填写一个域名后按回车,即可完成一个域名的输入。最多允许填写250个域名。

    支持填写的域名类型如下:

    • 单域名:表示一张SSL证书绑定一个主域名、一个子域名或一个公网IP(IPv4)。例如,aliyundoc.com

      说明

      如果您申请的单域名为一级域名,例如aliyundoc.com,则默认赠送www.aliyundoc.com(Alibaba Cloud品牌除外)

    • IP:SSL证书用于绑定一个IP,例如,1.1.X.X。

    • 通配符域名:SSL证书用于绑定一个泛域名,例如,*.aliyundoc.com。通配符域名匹配规则,请参见通配符域名证书都支持哪些域名?

    • 混合域名:混合域名证书是指绑定的域名既包括单域名,也包括通配符域名的证书。例如,绑定的域名为*.aliyundoc.com、demo.example.com,即称该证书为混合域名证书。

    您填写域名后,数字证书管理服务将自动为您匹配该域名支持的证书类型和证书品牌,方便您选择。

    证书类型

    选择要购买的证书类型:

    • OV证书:企业型证书。安全性高,适用于政府组织、企业、教育机构等。

    • DV证书:域名型证书。安全性一般,适用于个人网站、测试等。

    • EV证书:企业增强型证书。安全性最高,适用于大型企业、金融机构等。

    证书品牌

    选择要购买的证书品牌。关于证书品牌的更多信息,请参见SSL证书选购指引

    其他服务

    选择需要购买的人工技术支持服务:

    • 不需要

    • 申请协助服务:工作日服务时间内(9:00~18:00)帮助您快速签发SSL证书。

    • 部署服务:工作日服务时间内(9:00~18:00)帮助您部署RSA或ECC算法证书。

    • 部署服务(国密):工作日服务时间内(9:00~18:00)帮助您部署国密(SM2)算法证书,解决国密证书部署配置复杂的问题。

    • 申请协助+部署服务:证书申请和部署全流程协助,支持非工作日服务时间(9:00~18:00),帮您快速完成证书签发和部署。

    说明

    更多信息,请参见购买证书申请协助和部署服务

    是否合并签发

    只有域名名称中包含多个域名,且证书类型不是DV证书时,需要配置该参数。

    • 默认为,表示为多个域名分别签发证书。您填写了多少个域名,就会购买多少张证书。这种情况下,不支持在立即购买面板,完善证书申请信息并提交证书申请。

    • 如果希望在一张证书中绑定已填写的所有域名,您可以选择,为多个域名合并签发一张证书,该证书可用于保护多个域名。这种情况下,支持在立即购买面板,完善证书申请信息并提交证书申请。

      重要

      选择合并签发证书并完成购买后,所购证书不支持退款。

    证书服务时长

    所有CA中心签发的证书的有效期最长均为397天,此处选择的是证书服务的订阅时长。可选项:

    • 1年:只包含1张有效期为1年的证书。

    • 2年:包含2张有效期为1年的证书。本次先为您签发1张证书,等本次签发的证书有效期不足30天时,自动为您申请第2张证书。

    • 3年:包含3张有效期为1年的证书。本次先为您签发1张证书,等本次签发的证书有效期不足30天时,自动为您申请第2张证书;等第2次签发的证书有效期不足30天时,自动为您申请第3张证书。

    重要

    如果您购买的是多年期证书,在证书签发完成后,阿里云产品将自动更新证书,非阿里云产品需要您手动更新到业务环境中,以保证您的网站可以安全访问。更多关于多年期SSL证书说明,请参见购买多年期SSL证书

    开启域名监控

    开启后,可以检测域名的HTTPS业务状态,帮助您及时发现站点上的SSL证书安全问题。更多信息,请参见购买并开启域名监控

  5. 仔细阅读证书服务相关协议,并勾选我已阅读并同意证书服务服务协议证书技术支持服务须知

  6. 选中勾选并且完善以下信息,付款后将直接提交证书申请请求,签发速度更快,并根据页面提示填写证书申请信息。更多信息,请参见申请证书时需要提交的信息

  7. 单击立即购买并完成支付。

  8. 在证书列表,定位到签发的证书,在操作列,单击下载

  9. 服务器类型为Nginx的操作列,单击下载,并解压SSL证书压缩包(包含PEM后缀的证书文件和KEY后缀的私钥文件)。

部署SSL证书实现网站HTTPS访问

20

操作步骤

  1. 登录云服务器ECS,并执行以下命令,在Nginx安装目录下创建一个用于存放证书的cert目录。

    mkdir /etc/nginx/cert #创建证书目录,用于存放证书
  2. 使用Workbench将证书文件和私钥文件上传到Nginx服务器的证书目录(/etc/nginx/cert)。

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

    1. 在nginx.conf中定位到server属性配置。

      image

    2. 删除行首注释符号#,并参考以下配置示例进行修改。

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

    nginx -s reload

完成及清理

15

方案验证

一、通过页面浏览,验证证书绑定情况

  1. 证书安装完成后,您可通过浏览器访问证书的绑定域名,如https://ssl-demo.aliyundoc.com,如果网页地址栏出现小锁标志,表示证书已经安装成功,网站应用已经支持HTTPS访问。image

二、通过抓包分析,验证HTTPS的传输安全性

  1. 在资源栈详情页的输出页签,找到ESC实例的登录地址。点击后打开workbench远程连接,输入以下命令安装tcpdump工具用于抓包。

    sudo yum -y install tcpdump
  2. 使用tcpdump抓取HTTP数据包。

    1. 在ECS实例上运行以下命令,开始抓取HTTP流量:

      sudo tcpdump -i eth0 port 80 -w http_capture.pcap

    2. 在本地浏览器中访问HTTP网站(例如http://your-domain.com),生成一些流量。回到ECS实例,按Ctrl+C停止抓包。

  3. 使用tcpdump抓取HTTPS数据包

    1. 在ECS实例上运行以下命令,开始抓取HTTPS流量:

      sudo tcpdump -i eth0 port 443 -w https_capture.pcap

    2. 在本地浏览器中访问你的HTTPS网站(例如https://your-domain.com),生成一些流量。回到ECS实例,按Ctrl+C停止抓包。

  4. 对比数据包内容

    1. 查看HTTP数据包内容:

      sudo tcpdump -r http_capture.pcap -A

      image.png

    2. 查看HTTPS数据包内容:

      sudo tcpdump -r https_capture.pcap -A

      image.png

  5. 对比抓包结果,HTTP数据包内容是明文的,可以直接看到所有传输的数据,包括敏感信息。HTTPS数据包内容是加密的,无法直接读取传输的数据,保证了数据的机密性和完整性。

通过以上步骤,可以看到HTTP和HTTPS在数据传输中的差异,验证SSL(HTTPS)相比HTTP在数据传输安全性上的显著提升。

清理资源

测试完方案后,如无后续使用需求,您可以参考以下规则处理对应资源,避免继续产生费用:

  1. 释放云服务器ECS实例:

    登录ECS控制台,在实例页面,找到目标实例,然后在操作列选择216更多-竖向..png> 释放设置,根据界面提示释放实例。

  2. 释放1台交换机:

    登录专有网络控制台,在交换机页面,找到目标交换机,然后在操作列单击删除,按照界面提示释放实例。

  3. 释放1个专有网络VPC:

    登录专有网络控制台,在专有网络页面,找到目标VPC,然后在操作列单击删除,按照界面提示释放实例。

  4. 登录数字证书管理服务控制台,选择SSL证书,选择已签发的证书,点击右侧操作栏中的216更多-竖向..png> 吊销即可注销证书。如果还需要退款,请参见退款说明

一键部署

50

https://www.aliyun.com/solution/tech-solution/ssl

方案概览

在ECS上部署Web应用是非常常见的业务场景,用户使用HTTP请求访问网站域名,浏览器通常会显示“感叹号”,提醒用户当前访问的站点存在安全风险。使用HTTP明文请求的潜在风险如下:

  • 数据泄露及篡改:HTTP数据传输过程是以明文形式,并未加密,在传输路径上的监控者,转发者都可以直接看到数据内容,包括用户的敏感信息。可能会造成数据泄露及数据被恶意篡改。

  • 身份伪装:HTTP协议无法验证服务端的身份。攻击者可轻松假冒服务端,获取用户数据。

  • 搜索引擎排名:搜索引擎会降低不安全站点的权重,降低网站内容的搜索排名。

为了解决该问题,需要网站支持HTTPS协议访问。HTTPS协议可以防偷窥、防篡改及完成服务端身份验证等,可以保证请求全链路的数据访问安全。本案例为您介绍如何在ECS上搭建Web应用以及在Nginx服务器上部署SSL证书开启HTTPS安全访问。

方案架构

整体架构图如下图所示。

HTTP 到 HTTPS备份 2@2x.png

本方案的技术架构包括以下基础设施和云服务:

  • 1个专有网络VPC和1个交换机:构建云上私有网络。

  • 1台云服务器ECS:开放外网访问并部署Nginx服务,作为Web站点。

  • 1个SSL证书:需要将申请的证书部署到Nginx服务器。

部署准备

10

开始部署前,按以下指引完成账号申请、账号充值,并准备好已经备案的域名。

准备账号

  1. 如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。

  2. 为阿里云账号充值

    1. 本方案的服务器部署默认使用按量付费资源,使用按量付费资源需要确保账户余额不小于100元。

    2. 如果您申请免费证书来完成本方案的部署和体验,预计产生费用不超过1元。(假设您选择本文示例规格资源,且资源运行时间不超过120分钟。实际操作过程中可能会因您使用的资源规格和流量差异,导致费用有所不同,请以控制台显示的实际报价以及最终账单为准)

      序号

      产品

      计费项

      规格

      地域

      预估费用参考

      1

      云服务器 ECS

      ECS配置费

      • 实例:ecs.e-c1m1.large(2 vCPU 2 GiB,抢占型实例)

      • 系统盘:ESSD云盘 40GiB

      华东1(杭州)

      0.046/元/时

      2

      云服务器 ECS

      公网流量费

      按使用流量计费:带宽峰值5 Mbps

      华东1(杭州)

      公网流量费:阶梯计费,每月前200GB免费

    3. 如果您购买付费正式证书,则除了以上的ECS部署资源费,还会产生证书购买费用,根据您选择的证书种类、品牌和时间期限而定。

  3. 需要准备好已经完成备案的域名。

申请并下载SSL证书

35

重要

阿里云数字证书管理服务支持免费SSL证书和付费正式证书。免费SSL证书一般仅用于个人网站或测试使用,不建议业务成熟的企业类型网站使用。两类证书在安全等级、兼容性、支持的证书类型、保险和保障、证书有效期及技术支持等方面均有区别。详情请参见个人测试证书说明

操作步骤

申请免费证书

  1. 领取免费证书额度。

    1. 登录数字证书管理服务控制台

    2. 在左侧导航栏,选择证书管理 > SSL证书管理

    3. 个人测试证书(原免费证书)页签,单击立即购买

    4. 立即购买面板,参考下表购买免费证书,仔细阅读并勾选服务协议,单击立即购买并完成支付。

      配置项

      示例

      产品

      个人测试证书

      证书类型

      个人测试证书(免费版)

      服务

      保持默认

      购买数量

      保持默认

      其他服务

      不需要

  2. 提交证书申请。

    1. 返回个人测试证书(原免费证书)页签,单击创建证书

    2. 证书申请面板,配置证书参数,选中快捷签发,单击提交审核

      配置项

      说明

      证书类型

      选择个人测试证书(免费版):证书签发后有效期3个月。

      证书剩余数量/总数

      表示剩余可申请的证书个数/总共可申请的证书个数。只有当剩余可申请的证书个数不为0时,您才可以创建证书。

      域名名称

      填写该证书用于保护的网站域名。

      申请个人测试证书时,此处只可以填写一个单域名,例如,aliyundoc.com

      重要
      • 不支持后缀为特殊词的域名申请个人测试证书。例如.edu.gov.org.jp.pay.bank.live.nuclear.ru等等。正式证书无此限制。如果您需要为后缀为特殊词的域名申请证书,您只能申请正式证书。

      • 不支持为公网IP申请个人测试证书。仅Globalsign、GeoTrust、vTrus、CFCA品牌的OV单域名证书支持绑定IP。具体操作,请参见购买SSL证书

      • 如需一次操作申请多个域名的证书,需购买正式证书。具体操作请参见购买SSL证书

      数量

      证书数量,默认为1,不支持增加。

      快捷签发

      说明

      快捷签发是指在当前步骤填写证书申请资料并提交审核。

      域名验证方式

      • 如果您当前的阿里云账号与域名的DNS云解析服务所在账号一致,申请证书时,阿里云数字证书管理服务将会自动识别,并默认选择自动DNS验证方式,且不支持修改,提交审核后,系统会自动进行DNS验证。

      • 如果您当前的阿里云账号与域名的DNS云解析服务所在账号不一致,您可以选择以下任意一种方式进行域名所有权验证。

        • 手动DNS验证:您需要手动修改域名的DNS解析记录,并在证书绑定域名的域名控制台,添加一条解析记录用于域名所有权验证。

        • 域名授权自动化验证:您需要手动在对应的DNS域名解析服务商,添加一条CNAME类型的解析记录用于域名所有权验证。添加成功后,后续申请对应域名的SSL证书时可以直接选择该方式,且无需再添加域名解析记录。具体操作,请参见域名所有权验证

        • 文件验证:您需要手动从数字证书管理服务控制台下载一个专用的证书验证文件,然后将该文件上传到站点服务器的指定验证目录。

      联系人

      从下拉列表中选择本次证书申请的联系人(包含邮箱、手机号码等联系信息)。

      重要

      收到证书申请请求后,CA中心会向联系人邮箱发送证书申请验证邮件或者通过联系人手机号码沟通审核相关事宜。因此,请务必确保联系人信息准确且有效。

      如果您未创建过联系人,可以单击新建联系人,新建一个联系人。数字证书管理服务会保存新建的联系人信息,方便您下次使用。关于新建联系人的具体配置,请参见管理联系人

      所在地

      选择申请人所在城市或地区。

      密钥算法

      证书使用的密钥算法。

      默认选择为RSA,且不支持修改。RSA算法是目前在全球应用广泛的非对称加密算法,兼容性好。

      CSR生成方式

      CSR(Certificate Signing Request)文件是您的证书请求文件。该文件包含您的SSL证书信息,例如,证书绑定的域名、证书持有主体的名称及地理位置信息等。

      您向CA中心提交证书申请时,必须提供CSR。CA中心审核通过您的证书申请后,将使用其根CA私钥为您提供的CSR签名,生成SSL证书公钥(即签发给您的SSL证书)。SSL证书的私钥即您在生成CSR时同时生成的私钥。

      您可以选择以下CSR生成方式:

      • 系统生成:表示由数字证书管理服务自动使用您在密钥算法指定的加密算法生成CSR文件(您可以在证书签发后下载证书和私钥)。推荐您使用该方式。

      • 手动填写:表示您是使用OpenSSL或Keytool等工具手动生成的CSR和私钥文件,并将CSR内容复制粘贴到CSR文件内容(私钥文件由您自行保管)。关于如何制作CSR和私钥文件,请参见如何制作CSR文件

        重要
        • CSR生成方式选择手动填写后,您将无法在数字证书管理控制台将该证书部署到阿里云产品中。

        • 申请国密算法证书且选择手动填写CSR时,由于私钥不在阿里云,获得的加密证书需要私钥配合完成解密,请您联系私钥生成方协助完成解密工作。

        • 您提供的CSR内容正确与否直接关系到证书申请流程是否能顺利完成,建议您使用数字证书管理服务自动生成的CSR(即选择系统生成方式),避免因提供的CSR内容不正确导致证书审核失败。

        • 请确保您手动填写的CSR使用的加密算法与密钥算法中选择的算法相同,否则您将无法顺利提交证书审核。 如果您不清楚CSR使用的加密算法,您可以通过查看CSR工具查看,具体操作,请参见查看CSR详情

        • 在制作CSR文件时请务必保存好您的私钥文件。私钥和SSL证书一一对应,一旦私钥丢失,您的SSL证书也将不可使用。阿里云不负责保管您的私钥,如果您的私钥丢失,您必须重新购买SSL证书。

      • 选择已有的CSR:表示从您在数字证书管理服务控制台创建的CSR或上传的CSR中,选择与证书绑定域名相匹配的CSR。

        您必须先使用数字证书管理服务提供的CSR管理工具手动创建CSR或上传已有的CSR,才可以使用该方式。具体操作,请参见创建CSR上传CSR

        重要

        您选择的CSR使用的加密算法需要和您在密钥算法中设置的算法相同,否则您将无法顺利提交证书审核。如果您不清楚CSR使用的加密算法或域名,您可以通过查看CSR工具查看,具体操作,请参见查看CSR详情

      CSR文件内容

      只有在CSR生成方式手动填写选择已有的CSR时,需要配置该参数。在此处填写您的CSR文件内容。

    3. 按照验证信息中的提示,完成域名所有权的验证。

      域名所有权验证成功后,证书通常会在1~2个工作日完成签发,最快10分钟内签发。证书签发后,证书状态将变更为已签发。如果SSL证书长时间未签发,请您检查DNS验证配置是否正确。域名所有权验证更多信息和常见报错,请参见域名所有权验证

      说明

      如果您未选中快捷签发,创建证书申请后,您将获得一个证书(对应要申请的证书)。您需要在该证书操作列,单击证书申请,填写证书申请信息并提交审核后,再按照该步骤进行验证。

  3. 下载免费证书。

    1. 在免费证书列表,定位到签发的证书,在操作列,单击下载

    2. 服务器类型为Nginx的操作列,单击下载,并解压SSL证书压缩包(包含PEM后缀的证书文件和KEY后缀的私钥文件)。

购买付费正式证书

  1. 登录数字证书管理服务控制台

  2. 在左侧导航栏,选择证书管理 > SSL证书管理

  3. 正式证书页签,单击购买证书

  4. 立即购买面板,参考以下说明完成购买参数配置。

    配置项

    说明

    域名名称

    填写证书绑定的网站域名。支持填写多个域名。填写一个域名后按回车,即可完成一个域名的输入。最多允许填写250个域名。

    支持填写的域名类型如下:

    • 单域名:表示一张SSL证书绑定一个主域名、一个子域名或一个公网IP(IPv4)。例如,aliyundoc.com

      说明

      如果您申请的单域名为一级域名,例如aliyundoc.com,则默认赠送www.aliyundoc.com(Alibaba Cloud品牌除外)

    • IP:SSL证书用于绑定一个IP,例如,1.1.X.X。

    • 通配符域名:SSL证书用于绑定一个泛域名,例如,*.aliyundoc.com。通配符域名匹配规则,请参见通配符域名证书都支持哪些域名?

    • 混合域名:混合域名证书是指绑定的域名既包括单域名,也包括通配符域名的证书。例如,绑定的域名为*.aliyundoc.com、demo.example.com,即称该证书为混合域名证书。

    您填写域名后,数字证书管理服务将自动为您匹配该域名支持的证书类型和证书品牌,方便您选择。

    证书类型

    选择要购买的证书类型:

    • OV证书:企业型证书。安全性高,适用于政府组织、企业、教育机构等。

    • DV证书:域名型证书。安全性一般,适用于个人网站、测试等。

    • EV证书:企业增强型证书。安全性最高,适用于大型企业、金融机构等。

    证书品牌

    选择要购买的证书品牌。关于证书品牌的更多信息,请参见SSL证书选购指引

    其他服务

    选择需要购买的人工技术支持服务:

    • 不需要

    • 申请协助服务:工作日服务时间内(9:00~18:00)帮助您快速签发SSL证书。

    • 部署服务:工作日服务时间内(9:00~18:00)帮助您部署RSA或ECC算法证书。

    • 部署服务(国密):工作日服务时间内(9:00~18:00)帮助您部署国密(SM2)算法证书,解决国密证书部署配置复杂的问题。

    • 申请协助+部署服务:证书申请和部署全流程协助,支持非工作日服务时间(9:00~18:00),帮您快速完成证书签发和部署。

    说明

    更多信息,请参见购买证书申请协助和部署服务

    是否合并签发

    只有域名名称中包含多个域名,且证书类型不是DV证书时,需要配置该参数。

    • 默认为,表示为多个域名分别签发证书。您填写了多少个域名,就会购买多少张证书。这种情况下,不支持在立即购买面板,完善证书申请信息并提交证书申请。

    • 如果希望在一张证书中绑定已填写的所有域名,您可以选择,为多个域名合并签发一张证书,该证书可用于保护多个域名。这种情况下,支持在立即购买面板,完善证书申请信息并提交证书申请。

      重要

      选择合并签发证书并完成购买后,所购证书不支持退款。

    证书服务时长

    所有CA中心签发的证书的有效期最长均为397天,此处选择的是证书服务的订阅时长。可选项:

    • 1年:只包含1张有效期为1年的证书。

    • 2年:包含2张有效期为1年的证书。本次先为您签发1张证书,等本次签发的证书有效期不足30天时,自动为您申请第2张证书。

    • 3年:包含3张有效期为1年的证书。本次先为您签发1张证书,等本次签发的证书有效期不足30天时,自动为您申请第2张证书;等第2次签发的证书有效期不足30天时,自动为您申请第3张证书。

    重要

    如果您购买的是多年期证书,在证书签发完成后,阿里云产品将自动更新证书,非阿里云产品需要您手动更新到业务环境中,以保证您的网站可以安全访问。更多关于多年期SSL证书说明,请参见购买多年期SSL证书

    开启域名监控

    开启后,可以检测域名的HTTPS业务状态,帮助您及时发现站点上的SSL证书安全问题。更多信息,请参见购买并开启域名监控

  5. 仔细阅读证书服务相关协议,并勾选我已阅读并同意证书服务服务协议证书技术支持服务须知

  6. 选中勾选并且完善以下信息,付款后将直接提交证书申请请求,签发速度更快,并根据页面提示填写证书申请信息。更多信息,请参见申请证书时需要提交的信息

  7. 单击立即购买并完成支付。

  8. 在证书管理列表,定位到签发的证书,在操作列,单击下载

一键部署

10

一键部署基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,ROS模板已定义好脚本,可自动化地完成云资源的创建和配置,提高资源的创建和部署效率。本方案中ROS模板完成的内容包括:

  • 创建1 台云服务器ECS实例并部署Nginx应用。

  • 配置域名解析。

  • 部署SSL证书。

操作步骤

  1. 单击一键部署,在顶部导航栏选择地域。

  2. 在配置页面修改资源栈名称,按需选择和配置参数。

  3. 将下载的SSL证书压缩包(无需解压)拖拽到证书文件区域。

  4. 资源栈信息页面的状态显示为创建成功时表示一键配置完成。

    image

完成及清理

5

方案验证

一、通过页面浏览,验证证书绑定情况

  1. 证书安装完成后,您可通过浏览器访问证书的绑定域名,如https://ssl-demo.aliyundoc.com,如果网页地址栏出现小锁标志,表示证书已经安装成功,网站应用已经支持HTTPS访问。image

二、通过抓包分析,验证HTTPS的传输安全性

  1. 在资源栈详情页的输出页签,找到ESC实例的登录地址。点击后打开workbench远程连接,输入以下命令安装tcpdump工具用于抓包。

    sudo yum -y install tcpdump
  2. 使用tcpdump抓取HTTP数据包。

    1. 在ECS实例上运行以下命令,开始抓取HTTP流量:

      sudo tcpdump -i eth0 port 80 -w http_capture.pcap

    2. 在本地浏览器中访问HTTP网站(例如http://your-domain.com),生成一些流量。回到ECS实例,按Ctrl+C停止抓包。

  3. 使用tcpdump抓取HTTPS数据包

    1. 在ECS实例上运行以下命令,开始抓取HTTPS流量:

      sudo tcpdump -i eth0 port 443 -w https_capture.pcap

    2. 在本地浏览器中访问你的HTTPS网站(例如https://your-domain.com),生成一些流量。回到ECS实例,按Ctrl+C停止抓包。

  4. 对比数据包内容

    1. 查看HTTP数据包内容:

      sudo tcpdump -r http_capture.pcap -A

      image.png

    2. 查看HTTPS数据包内容:

      sudo tcpdump -r https_capture.pcap -A

      image.png

  5. 对比抓包结果,HTTP数据包内容是明文的,可以直接看到所有传输的数据,包括敏感信息。HTTPS数据包内容是加密的,无法直接读取传输的数据,保证了数据的机密性和完整性。

通过以上步骤,可以看到HTTP和HTTPS在数据传输中的差异,验证SSL(HTTPS)相比HTTP在数据传输安全性上的显著提升。

清理资源

在本方案中,您创建了1个云服务器ECS实例,并申请了SSL证书。如果您无需继续使用,请尽快删除资源,避免继续产生费用:

  1. 登录ROS控制台

  2. 在左侧导航栏,选择资源栈

  3. 资源栈页面的顶部选择部署的资源栈所在地域,找到资源栈,然后在其右侧操作列,单击删除

  4. 删除资源栈对话框,选择删除方式释放资源,然后单击确定,根据提示完成资源释放。

  5. 登录数字证书管理服务控制台,选择SSL证书,选择已签发的证书,点击右侧操作栏中的216更多-竖向..png> 吊销即可注销证书。如果还需要退款,请参见退款说明