点击数:16
SSL生成证书
SSL介绍
SSL证书通过在客户端浏览器和 Web 服务器之间建立一条SSL安全通道(Secure socketlayer(SSL),SSL安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于 SSL 技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了)。即通过它可以激活 SSL 协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露。保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。
流程介绍
1.创建根证书密钥文件(自己做CA)root.key;创建根证书的申请文件root.csr;创建一个自当前日期起为期十年的根证书root.crt。
2.创建服务器证书密钥server.key;创建服务器证书的申请文件server.csr;创建自当前日期起有效期为期两年的服务器证书server.crt。
3.创建客户端证书密钥文件client.key;创建客户端证书的申请文件client.csr;创建一个自当前日期起有效期为两年的客户端证书client.crt。
4.将客户端证书文件client.crt和客户端证书密钥文件client.key合并成客户端证书安装包client.pfx;保存生成的文件备用,其中server.crt和server.key是配置单向SSL时需要使用的证书文件,client.crt是配置双向SSL时需要使用的证书文件,client.pfx是配置双向SSL时需要客户端安装的证书文件。
.crt文件和.key可以合到一个文件里面,把2个文件合成了一个.pem文件。(直接拷贝过去就可以)
实际操作
生成CA证书
生成CA私钥(.key)–>生成CA证书请求(.csr)–>自签名得到根证书(.crt)(CA给自已颁发的证书)
- 生成CA私钥 (key 文件)
$ openssl genrsa -out root.key 1024
- 生成CA证书签名请求文件 (csr 文件)
$ openssl req -new -key root.key -out root.csr
交互信息:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN -------------------------------------------------- 证书持有者所在国家
State or Province Name (full name) [Some-State]:Zhejiang ------------------------------- 证书持有者所在州或省份(可省略不填)
Locality Name (eg, city) []:Hangzhou ---------------------------------------------------- 证书持有者所在城市(可省略不填)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:OpenMind.ltd --------------- 证书持有者所属组织或公司
Organizational Unit Name (eg, section) []:OpenMind ------------------------------------- 证书持有者所属部门(可省略不填)
Common Name (e.g. server FQDN or YOUR name) []:zhoujunwen.com -------------------------- 域名
Email Address []:joyven888@163.com ----------------------------------------------------- 邮箱(可省略不填)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:. --------------------------------------------------------------- 自定义密码
An optional company name []: ------------------------------------------------------------ 可选公司名称
字段 | 说明 | 示例 |
---|---|---|
Country Name | ISO国家代码(两位字符) | CN |
State or Province Name | 所在省份 | Zhejiang |
Locality Name | 所在城市 | Hangzhou |
Organization Name | 公司名称 | XYZ Technology Inc |
Organizational Unit Name | 部门名称 | AI Dep |
Common Name | 申请SSL证书的域名 | www.abc.xyz |
Email Address | 邮件地址,可选,不需要输入 | |
A challenge password | 不需要输入 | |
An optional company name | 可选公司名称 |
- 生成证书文件 (crt 文件)
$ openssl x509 -req -days 3650 -in root.csr -signkey root.key -out root.crt
生成用户证书
生成私钥(.key)–>生成证书请求(.csr)–>用CA根证书签名得到证书(.crt)
生成服务端证书
# private key
$ openssl genrsa -des3 -out server.key 1024
# generate csr
$ openssl req -new -key server.key -out server.csr
# generate certificate
$ openssl ca -in server.csr -out server.crt -cert root.crt -keyfile root.key
生成客户端证书
$ openssl genrsa -des3 -out client.key 1024
$ openssl req -new -key client.key -out client.csr
$ openssl ca -in client.csr -out client.crt -cert root.crt -keyfile root.key
生成PEM格式
$ cat client.crt client.key> client.pem
$ cat server.crt server.key > server.pem
文件扩展名说明
.key
格式:私有的密钥.csr
格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写.crt
格式:证书文件,certificate的缩写.crl
格式:证书吊销列表,Certificate Revocation List的缩写.pem
格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式
免费证书
FreeSSL.org 是一个免费提供 HTTPS 证书申请、HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推进 HTTPS 证书的普及与应用,简化证书申请的流程。
生成证书
选择CSR
打开官网,输入需要进行登记的域名,点击“创建免费的SSL证书”,但不支持通配符,然后根据提示输入邮箱,选择证书类型、验证类型、CSR生成方式等信息。
关于CSR生成有三个选项:
- 1.离线生成
- 1、私钥本地加密存储更安全,自由选择iCloud、OneDrive、Dropbox、百度网盘备份加密库;
- 2、公私钥自动合成,支持常见证书格式转换方便部署;
- 3、支持部分WebServer一键部署,更便捷;
- 4、需要安装keyManager2软件
- 2.浏览器生成
在浏览器支持 Web Cryptography 的情况下,使用浏览器根据用户的信息生成CSR文件。
- 3.我有CSR
如果您有 CSR 文件,您可以选择我有 CSR 并粘贴。我们将根据您的 CSR 颁发证书。CSR文件是以”
-----BEGIN CERTIFICATE REQUEST-----
“开头 和以”-----END CERTIFICATE REQUEST-----
“结尾的字符串。可通过在线工CSR工具生成,也可以自己生成:
$ openssl genrsa -des3 -out server.key 2048 $ openssl req -new -key server.key -out server.csr
或者
openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr
免费证书CHINASSL 免费SSL证书
验证DNS
上面步骤选择完信息,填写好邮箱之后,点击创建,则出现DNS验证信息。
在域名解析服务中配置TXT记录:
记录类型 | 解析线路 | 主机记录 | 记录值 | MX优先级 | TTL |
---|---|---|---|---|---|
TXT | 默认 | _dnsauth | 20190628071***sz0ms2 | – | 10分钟 |
然后点击验证,即可生成证书,下载或者在keyManager中导出即可用。