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

本文涉及的产品
.cn 域名,1个 12个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 本文带您了解阿里云数字证书的基本原理、使用、申请流程及部署方式

背景知识


数字证书(或简称证书)是在 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 协议调用服务。

相关文章
|
2月前
|
安全 网络安全 数据安全/隐私保护
SSL/TLS证书**是一种用于加密网络通信的数字证书
SSL/TLS证书**是一种用于加密网络通信的数字证书
108 6
|
24天前
|
Web App开发 安全 网络协议
多域名 SSL 证书是什么? 多域名 SSL 证书申请流程
多域名SSL证书是保护多个网站时的高效选择,它使得单个证书能够保护多个域名(网站)。这种证书通过在用户的Web浏览器和托管网站的服务器之间建立安全的加密连接,确保了敏感信息(包括登录凭证、信用卡信息和其他个人数据)的安全传输。
360 1
|
2月前
|
算法 安全 网络安全
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
2024阿里云11.11金秋云创季活动火热进行中,活动月期间(2024年11月01日至11月30日)通过折扣、叠加优惠券等多种方式,阿里云WoSign SSL证书实现优惠价格新低,DV SSL证书220元/年起,助力中小企业轻松实现HTTPS加密,保障数据传输安全。
597 3
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
|
1月前
|
存储 安全 算法
阿里云平台WoSign SSL证书,轻量化助力网站安全合规
阿里云WoSign SSL品牌证书可通过SSL/TLS协议的加密认证机制,建立安全的网络连接并校验通信方的真实身份,从而实现网络传输的保密性、完整性,确保通信双方身份可信。部署证书文件到服务器端,帮助等保二级及以上信息系统以及关键信息基础设施信息系统,履行等保安全通信设计技术要求,轻量化助力网站数据传输安全合规建设。
178 2
|
1月前
|
网络协议 应用服务中间件 网络安全
小白必看:阿里云SSL证书免费申请流程,免费3个月到期解决方法
2024年阿里云提供免费SSL证书申请服务,品牌为Digicert,支持免费单域名证书,每个账号可申请20张,有效期3个月。用户需登录阿里云数字证书管理服务控制台,完成证书申请、域名绑定及DNS验证等步骤,操作简便快捷。更多详情见阿里云官网。
|
2月前
|
缓存 安全 算法
SSL和TLS部署实践
在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥来防止攻击者进行模拟攻击。同样重要的是拥有一个有效和强大的证书,它会授予私钥来代表一个特定的主机名。
69 2
|
2月前
|
网络协议 应用服务中间件 网络安全
2024阿里云免费版SSL证书申请流程,跟着教程一步步,非常简单!
2024年最新阿里云免费SSL证书申请流程,品牌为Digicert,每个阿里云账号可免费申请20张单域名证书,免费时长为3个月。申请流程包括登录数字证书管理服务控制台、创建证书、域名验证和下载证书。详情请参考阿里云官方页面。
2208 2
|
12天前
|
小程序 安全 网络协议
小程序免费SSL证书获取申请
小程序免费SSL证书的获取与申请流程包括:1. 选择可靠的证书颁发机构(如JoySSL);2. 注册并申请证书,填写注册码230922;3. 根据需求选择单域名或通配符证书;4. 提交并完成域名所有权验证;5. 下载并安装证书文件;6. 配置小程序的HTTPS设置;7. 启用并测试SSL证书;8. 定期更新维护证书。通过这些步骤,确保小程序数据传输的安全性和可靠性。
|
20天前
|
存储 监控 安全
告别手动续签烦恼:一键实现免费SSL证书自动更新
告别手动续签烦恼,一键实现免费SSL证书自动更新。通过自动化续签过程,减少人为错误,提高安全性,节省时间,确保网站始终提供安全、可信的服务。选择支持自动续签的证书颁发机构,并配置相应的工具,轻松管理SSL证书。
|
21天前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。