阿里云SSL数字证书原理、使用、申请流程及部署方式

简介: 本文带您了解阿里云数字证书的基本原理、使用、申请流程及部署方式

背景知识


数字证书(或简称证书)是在 Internet 上唯一地标识人员和资源的电子文件。证书使两个实体之间能够进行安全、保密的通信。

证书有很多种类型,例如个人证书(由个人使用)和服务器证书(用于通过安全套接字层 [SSL] 技术在服务器和客户机之间建立安全会话)。有关 SSL 的更多信息,请参见关于安全套接字层。

证书是基于公钥加密的,公钥加密使用数字密钥对(很长的数字)对信息进行加密或编码,从而使信息只能被目标收件人读取。然后,收件人对信息进行解密(解码)即可读取该信息。

一个密钥对包含一个公钥和一个私钥。拥有者对公钥进行分发并使任何人都可以使用该公钥。但是拥有者永远不会分发私钥;私钥始终是保密的。由于密钥与数学相关,因此使用了密钥对中的一个密钥进行加密的数据只能通过密钥对中的另一个密钥进行解密。

证书就好像一本护照:它可以标识持有者并提供其他重要信息。证书由称为证书授权机构 (Certification Authority, CA) 的可信赖第三方发布。CA 类似于护照申领办公室:它将验证证书持有者的身份并对证书进行签名,以使他人无法伪造或篡改证书。CA 对证书进行签名之后,持有者可以提供该证书作为身份证明并建立经过加密的保密通信。

最重要的是,证书会将拥有者的公钥绑定到拥有者的标识。与护照将照片绑定到其持有者的个人信息类似,证书将公钥绑定到有关其拥有者的信息。

除了公钥以外,证书通常还包括以下信息:

  • 持有者的姓名和其他标识,例如使用证书的 Web 服务器的 URL 或个人的电子邮件地址。

  • 发布证书的 CA 的名称。

  • 失效日期。

数字证书受 X.509 格式的技术规范约束。要检验 certificate 领域中某个用户的身份,验证服务将使用 X.509 证书的通用名称字段作为主体名称来检验 X.509 证书。

实验原理

1. 哈希函数

哈希函数是一个具有以下输入和输出的数学函数 H(X)=Y

H:哈希函数,其输入参数为X,输出为Y。

X:哈希方法的输入,可以是任意长度的任意数据。

Y:哈希方法的输出,是一段固定长度的二进制数据,长度可以是 256,384,516...。

用于加密的哈希函数有下面的特征:

无法找到产生相同输出的输入。从数学理论上来说,我们可以找到有相同输出的输入,因为输入可以是任何数据,而输出则是固定长度的。但是对于一个好的哈希函数来说,希望的是即使使用地球上所有的计算机一起进行计算,也无法在可接受的时间范围内找出具有相同输出的输入。
无法通过输出反推出输入。当输入值的取值范围很大,就很难通过输出反推出输入。当输入值的取值范围是一个有限的集合时,很容易通过遍历尝试每一个输入值来推断。在这种情况下,我们可以为输入 X 加上一个随机值 R 来隐藏输入值,即 H(R|X)=Y。由于攻击者不知道 R 的值,因此无法再通过遍历尝试每个输入的方法推断出 Y 对应的输入。这种做法被称为“加盐”,例如我们在存储密码时就会通过“加盐”的方法来避免彩虹表攻击。
从哈希函数的特点可以看出,一段数据的哈希值就是该数据的一个固定长度的,独一无 二的“特征”,我们可以把哈希值看作该数据的“数字指纹”。

2. 数字签名

数字签名是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防 止被人进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。

公钥密码算法采用公钥进行加密,私钥进行解密,数字签名则采用私钥进行加密,用公钥进行解密来验证数字签名。

秘钥拥有者(发送者)首先将原文通过特定的哈希函数得到摘要信息,然后采用私钥对摘要进行加密,就得到了签名。然后将签名附加在原文后一起传送给接收者,接收者拥有公钥,对签名进行解密后得到原文的摘要信息,然后用 HASH 函数对收到的原文提炼出一个摘要信息,与解密得到的摘要进行对比,可以判断接收到的信息是否被篡改,确定信息的完整性。由于私钥是不公开的,只有发送者才能采用私钥对数据加密,所以这种方式可以确定 消息的不可抵赖性。

在数字证书,区块链,比特币中就采用了数字签名来验证用户身份。下图展示了数字签名和验证的流程:

image.png

3. 数字证书

数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在 Internet 上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构—— CA 机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份,它的基本任务是将一个公钥与安全个体(个人、公司等)的名字绑在一起。

最简单的证书包含密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即 CA(例如中国各地方的 CA 公司)中心签发的证书,也可以由企业级 CA 系统进行签发。

从数字签名使用对象的角度分,目前的数字证书类型主要包括:个人身份证书、企业或机构身份证书、支付网关证书、服务器证书、安全电子邮件证书、个人代码签名证书,这些数字证书特点各有不同。

  • 个人身份证书

符合 X.509 标准的数字安全证书,证书中包含个人身份信息和个人的公钥,用于标识证书持有人的个人身份。数字安全证书和对应的私钥存储于 E-key 中,用于个人在网上进行合同签定、定单、录入审核、操作权限、支付信息等活动中标明身份。

  • 企业或机构身份证书

符合 X.509 标准的数字安全证书,证书中包含企业信息和企业的公钥,用于标识证书持有企业的身份。数字安全证书和对应的私钥存储于 E-key 或 IC 卡中,可以用于企业在电子商务方面的对外活动,如合同签定、网上证券交易、交易支付信息等方面。

  • 支付网关证书

支付网关证书是证书签发中心针对支付网关签发的数字证书,是支付网关实现数据加解密的主要工具,用于数字签名和信息加密。支付网关证书仅用于支付网关提供的服务 (Internet 上各种安全协议与银行现有网络数据格式的转换)。支付网关证书只能在有效状态下使用。支付网关证书不可被申请者转让。

  • 服务器证书

符合 X.509 标准的数字安全证书,证书中包含服务器信息和服务器的公钥,在网络通讯中用于标识和验证服务器的身份。数字安全证书和对应的私钥存储于 E-key 中。服务器软件利用证书机制保证与其他服务器或客户端通信时双方身份的真实性、安全性、可信任度 等。

  • 企业或机构代码签名证书

代码签名证书是 CA 中心签发给软件提供商的数字证书,包含软件提供商的身份信息、 公钥及 CA 的签名。软件提供商使用代码签名证书对软件进行签名后放到 Internet 上,当用户在 Internet 上下载该软件时,将会得到提示,从而可以确信:软件的来源;软件自签名后到下载前,没有遭到修改或破坏。代码签名证书可以对 32-bit.exe 、.cab 、.ocx 、.class 等程序和文件进行签名。

  • 安全电子邮件证书

符合 X.509 标准的数字安全证书,通过 IE 或 Netscape 申请,用 IE 申请的证书存储于 WINDOWS 的注册表中,用 NETSCAPE 申请的存储于个人用户目录下的文件中。用于安全电子邮件或向需要客户验证的 WEB 服务器(https 服务) 表明身份。

  • 个人代码签名证书

个人代码签名证书是 CA 中心签发给软件提供人的数字证书,包含软件提供个人的身份信息、公钥及 CA 的签名。软件提供人使用代码签名证书对软件进行签名后放到 Internet 上,当用户在 Internet 上下载该软件时,将会得到提示,从而可以确信:软件的来源;软件自签名后到下载前,没有遭到修改或破坏。代码签名证书可以对 32-bit .exe、.cab、.ocx、.class 等程序和文件进行签名。

从数字证书的技术角度分,CA 中心发放的证书分为两类:SSL 证书和 SET 证书。一般地说,SSL 证书(安全套接层)是服务于银行对企业或企业对企业的电子商务活动的;而 SET(安全电子交易)证书则服务于持卡消费、网上购物。虽然它们都是用于识别身份和数字签名的证书,但它们的信任体系完全不同,而且所符合的标准也不一样。

4. 数字证书的格式

数字证书的格式普遍采用 RFC5280 定义的 X.509 标准。下表列出了 X.509 标准格式的证书中的主要字段。

image.png

证书主要的文件类型和协议有:PEM、DER、PFX、JKS、KDB、CER、KEY、CSR、 CRT、CRL、OCSP、SCEP 等。Openssl 使用 PEM 格式存储证书。

数字证书的一个实例是 https 协议,用于网页加密。以下是百度网页的数字证书例子:

image.png


实验内容

利用openssl 生成公钥、私钥对,并生成自己的数字证书。密码算法不局限于 RSA,这里鼓励大家利用 openssl 生成其他公钥密码算法的密钥对。

实验所需工具:OpenSSL

openssl 是一个功能强大的工具包,它集成了众多密码算法及实用工具。我们可以利用它提供的命令台工具生成密钥、证书来加密解密文件,也可以在利用其提供的 API 接口在 代码中对传输信息进行加密。

以 RSA 为加密算法,生成数字证书为例:

根据私钥生成证书签名请求。

image.png

查看证书签名请求内容。

image.png

发送证书签名请求到 CA 进行签发,生成 X.509 证书。(这里我们先生成一个 CA 服务器)

生成 CA 私钥

image.png

根据 CA 私钥生成 CA 的自签名证书(与生成证书签名请求有区别)。

image.png

查看自签名的 CA 证书。

image.png

image.png

使用 CA 的私钥和证书对用户证书签名。

image.png


SSL证书申请流程

阿里云免费SSL证书是DigiCert品牌的DV单域名证书,每个阿里云账号一年内均可申请20个免费SSL证书,只要你的阿里云账号通过实名认证即可,无论是新用户还是老用户,个人用户还是企业用户,均可申请免费SSL证书。

阿里云SSL证书官方产品面:https://www.aliyun.com/product/cas

进入证书管理控制台

image.png

点击左侧栏的“SSL证书”–“免费证书”–“立即购买”,如下图:

image.png

产品选择“免费证书”,购买数量选择“20”,其他服务选择“不需要”,勾选同意协议,一共是0元,如下图:

image.png

如上图所示,点“立即购买”,支付0元即可。

每个实名主体个人/企业,一个自然年内可以领取一次数量为20的免费证书资源包。购买后在后台填写证书绑定域名、域名验证、联系人信息、密钥算法、CSR生成方式即可申请并下载SSL证书。

image.png

创建之后,列表出现一个带申请的证书,我们点击证书申请按钮,进行我们相关的网站配置

image.png

image.png

阿里云SSL证书申请信息填写

  • 证书绑定域名:填写你的网站域名,如www.aliyunbaike.com

  • 域名验证方式:如果你的域名是在当前的阿里云账号下申请的,就选“自动DNS验证”,如果不在当前账号下,就选“手工DNS验证”

  • 联系人:没有联系人,就新建一个联系人,根据事情情况填写

  • 所在地:根据实际情况填写

  • 密钥算法:RSA

  • CSR生成方式:系统生成

域名DNS验证,如果当前申请SSL证书和域名在同一阿里云账号下,选择自动DNS验证,系统会自动帮你添加DNS验证。但是,如果域名不在当前阿里云账号下,就需要选择手工DNS验证,如下图:

将提供的解析地址及解析值,添加进域名服务商的域名解析中即可进行验证。

image.png

文件验证需要首先下载提供的验证文件,之后去服务器的 Tomcat 目录的 webapps 文件夹中打开 cmd 执行命令,创建多级文件夹,再进行如下验证:

image.png

域名验证,提交审核。回到刚刚的SSL证书申请页面,点击“验证”,如果域名验证成功,点击“提交审核”即可,提交审核后会提示:已经成功提交到CA公司,请您保持电话畅通,并及时查阅邮箱中来自CA公司的电子邮件。如下图:

image.png

一般等待几分钟即可下发SSL证书,然后下载证书即可。阿里云SSL证书支持多种服务器类型,如:Tomcat、Apache、Nginx、IIS、JKS、其他及根证书下载。如下图:

image.png

审核成功后选择下载适用于 Tomcat 的证书格式,将证书文件复制到服务器。(依照个人情况)

进入服务器 Tomcat 目录找到 conf/server.xml,若无以下内容就进行添加:

<Connector port="8078" protocol="org.apache.coyote.http11.Http11Protocol"
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
      keystoreFile="conf/xxxxx.pfx"
      keystorePass="xxxxxxx"
        clientAuth="false" sslProtocol="TLS"/>

注:keystoreFile 写证书文件全名,keystorePass 写下载后随机生成的密码(打开 txt 文件,里面有写),其余的配置除了 port 端口号可以修改,其他的不需要修改。

image.png

至此结束,重启 Tomcat 即可使用 HTTPS 协议调用服务。

相关文章
|
3月前
|
网络协议 应用服务中间件 网络安全
阿里云免费版SSL证书申请及部署按照流程,白嫖阿里云20张SSL证书
阿里云提供免费SSL证书,品牌为DigiCert,单域名证书每账号可申领20张,有效期3个月。通过数字证书控制台申请,支持DNS验证,审核通过后可下载多种格式证书,适用于Nginx、Apache等服务器,轻松实现网站HTTPS加密。
612 9
|
3月前
|
网络协议 应用服务中间件 网络安全
阿里云ssl证书申请具体操作流程图,2025年新手图文教程
2025年阿里云SSL免费证书申请图文教程:通过数字证书管理控制台,申请Digicert品牌单域名免费证书,每账号可领20张,有效期3个月。流程包括登录控制台、购买免费证书、创建证书、DNS验证(TXT记录)、审核及下载,支持Nginx、Tomcat等多格式证书,全程免费,操作简单。
|
3月前
|
网络协议 应用服务中间件 网络安全
阿里云SSL证书申请具体操作流程,以申请免费SSL证书为例
阿里云免费SSL证书由Digicert提供,单域名可申请20张,有效期3个月。通过数字证书管理控制台,完成购买、域名验证(DNS或文件)、提交审核后下载,支持Nginx、Apache等多服务器格式。
487 0
|
7月前
|
安全 数据建模 应用服务中间件
阿里云SSL证书价格、证书类型及免费版证书申请和证书部署教程参考
阿里云SSL证书有收费版也有免费版,收费版DV域名级SSL类型405元起,免费版证书为DV域名级SSL类型,每个实名个人和企业主体在一个自然年内可以一次性领取20张免费证书。本文为大家详细介绍阿里云SSL证书价格情况,包括不同域名类型、证书类型、证书等级和证书品牌的相关收费标准,以及免费版证书的申请和部署教程参考。
|
11月前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
10月前
|
算法 应用服务中间件 网络安全
阿里云WoSign“国密RSA双SSL证书”应用实践
阿里云WoSign品牌SSL证书是阿里云平台热销的国产品牌证书之一,支持签发国密合规的SM2算法SSL证书以及全球信任的RSA算法SSL证书,能够满足平台用户不同的SSL证书应用需求,同时为用户提供国密模块支持,实现“国密/RSA双证书部署”。
1218 6
阿里云WoSign“国密RSA双SSL证书”应用实践
|
10月前
|
算法 安全 应用服务中间件
2025阿里云智惠采购季,WoSign SSL国产证书折上折满减优惠
**2025阿里云“智慧采购季,就上阿里云”活动火热进行中!** 3月1日至31日,阿里云WoSign品牌SSL证书新老用户同享折上折满减优惠。DV SSL证书低至220元/年起,轻松实现HTTPS加密,保障数据传输安全。领取“智惠采购季上云礼包”,先领券再下单,享受满减优惠。WoSign品牌SSL证书国密RSA双算法支持,确保广泛兼容与可靠部署。
945 2
2025阿里云智惠采购季,WoSign SSL国产证书折上折满减优惠
|
12月前
|
数据建模 网络安全
阿里云SSL证书不同类型DV、OV和EV如何收费?单域名和通配符SSL价格整理
阿里云SSL证书提供免费和收费版本,涵盖DV、OV、EV多种类型。收费证书品牌包括DigiCert、GlobalSign等,价格从238元/年起。免费SSL证书由Digicert提供,单域名有效3个月,每个实名主体每年可领取20个。具体价格和详情见阿里云SSL官方页面。
|
10月前
|
运维 安全 网络安全
【运维实战分享】轻松搞定 SSL 证书管理,告别证书繁琐操作
Spug证书平台的最大亮点之一就是其极为简化的证书申请流程,无论是新手还是经验丰富的运维专家,都可以在几分钟内轻松完成证书的申请,通过微信扫码直接登录申请,无需复杂注册,整个过程既方便又快捷。
249 17