Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇
<p><span style="font-size: 18pt"> <strong> Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇</strong></span></p><p><span style="font-size: 18pt"><strong> 作者:尹正杰</strong></span></p>
<p><span style="font-size: 18pt"><strong>版权声明:原创作品,谢绝转载!否则将追究法律责任。</strong></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 14pt; color: rgba(255, 0, 255, 1)"><strong>一.试验架构说明</strong></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">node101.yinzhengjie.org.cn:
CA服务器<br><br>
node108.yinzhengjie.org.cn:<br> CA客户端</span></pre>
</div>
<div class="cnblogs_code"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_c2f7b00e-ee2a-4b01-8ce5-b7813fa01f60" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_c2f7b00e-ee2a-4b01-8ce5-b7813fa01f60" class="cnblogs_code_hide">
<pre># <span style="color: rgba(0, 0, 255, 1)">uname</span> -<span style="color: rgba(0, 0, 0, 1)">r
</span><span style="color: rgba(128, 0, 128, 1)">3.10</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">957</span><span style="color: rgba(0, 0, 0, 1)">.el7.x86_64
#
# <span style="color: rgba(0, 0, 255, 1)">uname</span> -<span style="color: rgba(0, 0, 0, 1)">m
x86_64
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/redhat-<span style="color: rgba(0, 0, 0, 1)">release
CentOS Linux release </span><span style="color: rgba(128, 0, 128, 1)">7.6</span>.<span style="color: rgba(128, 0, 128, 1)">1810</span><span style="color: rgba(0, 0, 0, 1)"> (Core)
#
# <span style="color: rgba(0, 0, 255, 1)">free</span> -<span style="color: rgba(0, 0, 0, 1)">h
total used </span><span style="color: rgba(0, 0, 255, 1)">free</span> sharedbuff/<span style="color: rgba(0, 0, 0, 1)">cache available
Mem: </span><span style="color: rgba(128, 0, 128, 1)">7</span>.6G 132M <span style="color: rgba(128, 0, 128, 1)">7</span>.2G <span style="color: rgba(128, 0, 128, 1)">8.6M</span> 299M <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">.3G
Swap: </span><span style="color: rgba(128, 0, 128, 1)">7</span>.9G 0B <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">.9G
#
#
# <span style="color: rgba(0, 0, 255, 1)">hostname</span> -<span style="color: rgba(0, 0, 0, 1)">i
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.101</span><span style="color: rgba(0, 0, 0, 1)">
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/<span style="color: rgba(0, 0, 255, 1)">hostname</span><span style="color: rgba(0, 0, 0, 1)">
node101.yinzhengjie.org.cn
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/<span style="color: rgba(0, 0, 0, 1)">hosts
</span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)"> localhost localhost.localdomain localhost4 localhost4.localdomain4
::</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> localhost localhost.localdomain localhost6 localhost6.localdomain6
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.101</span><span style="color: rgba(0, 0, 0, 1)"> node101.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.102</span><span style="color: rgba(0, 0, 0, 1)"> node102.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.103</span><span style="color: rgba(0, 0, 0, 1)"> node103.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.104</span><span style="color: rgba(0, 0, 0, 1)"> node104.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.105</span><span style="color: rgba(0, 0, 0, 1)"> node105.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.106</span><span style="color: rgba(0, 0, 0, 1)"> node106.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.107</span><span style="color: rgba(0, 0, 0, 1)"> node107.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.108</span><span style="color: rgba(0, 0, 0, 1)"> node108.yinzhengjie.org.cn
#
# </pre>
</div>
<span class="cnblogs_code_collapse"># cat /etc/hosts</span></div>
<div class="cnblogs_code"><img id="code_img_closed_1e7f5052-7d3d-4136-b1db-ed1cc5a9a8ae" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_1e7f5052-7d3d-4136-b1db-ed1cc5a9a8ae" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_1e7f5052-7d3d-4136-b1db-ed1cc5a9a8ae" class="cnblogs_code_hide">
<pre># <span style="color: rgba(0, 0, 255, 1)">uname</span> -<span style="color: rgba(0, 0, 0, 1)">r
</span><span style="color: rgba(128, 0, 128, 1)">3.10</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">957</span><span style="color: rgba(0, 0, 0, 1)">.el7.x86_64
#
# <span style="color: rgba(0, 0, 255, 1)">uname</span> -<span style="color: rgba(0, 0, 0, 1)">m
x86_64
#
# <span style="color: rgba(0, 0, 255, 1)">free</span> -<span style="color: rgba(0, 0, 0, 1)">h
total used </span><span style="color: rgba(0, 0, 255, 1)">free</span> sharedbuff/<span style="color: rgba(0, 0, 0, 1)">cache available
Mem: </span><span style="color: rgba(128, 0, 128, 1)">3</span>.7G 98M <span style="color: rgba(128, 0, 128, 1)">3</span>.5G <span style="color: rgba(128, 0, 128, 1)">8.5M</span> 148M <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">.4G
Swap: </span><span style="color: rgba(128, 0, 128, 1)">3</span>.9G 0B <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">.9G
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/redhat-<span style="color: rgba(0, 0, 0, 1)">release
CentOS Linux release </span><span style="color: rgba(128, 0, 128, 1)">7.6</span>.<span style="color: rgba(128, 0, 128, 1)">1810</span><span style="color: rgba(0, 0, 0, 1)"> (Core)
#
# <span style="color: rgba(0, 0, 255, 1)">hostname</span> -<span style="color: rgba(0, 0, 0, 1)">i
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.108</span><span style="color: rgba(0, 0, 0, 1)">
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/<span style="color: rgba(0, 0, 0, 1)">hosts
</span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)"> localhost localhost.localdomain localhost4 localhost4.localdomain4
::</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> localhost localhost.localdomain localhost6 localhost6.localdomain6
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.101</span><span style="color: rgba(0, 0, 0, 1)"> node101.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.102</span><span style="color: rgba(0, 0, 0, 1)"> node102.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.103</span><span style="color: rgba(0, 0, 0, 1)"> node103.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.104</span><span style="color: rgba(0, 0, 0, 1)"> node104.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.105</span><span style="color: rgba(0, 0, 0, 1)"> node105.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.106</span><span style="color: rgba(0, 0, 0, 1)"> node106.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.107</span><span style="color: rgba(0, 0, 0, 1)"> node107.yinzhengjie.org.cn
</span><span style="color: rgba(128, 0, 128, 1)">172.30</span>.<span style="color: rgba(128, 0, 128, 1)">1.108</span><span style="color: rgba(0, 0, 0, 1)"> node108.yinzhengjie.org.cn
#
#</pre>
</div>
<span class="cnblogs_code_collapse"># cat /etc/hosts</span></div>
<p> </p>
<p><span style="font-size: 14pt; color: rgba(255, 0, 255, 1)"><strong>二.<strong>生成自签名证书</strong></strong></span></p>
<p><span style="font-size: 18px; color: rgba(0, 0, 0, 1)"><strong>1>.查看opennssl的配置文件</strong></span></p>
<div class="cnblogs_code">
<pre>openssl的配置文件:<br> /etc/pki/tls/<span style="color: rgba(0, 0, 0, 1)">openssl.cnf
三种策略:match匹配、optional可选、supplied提供
match:<br> 要求申请填写的信息跟CA设置信息必须一致
optional:<br> 可有可无,跟CA设置信息可不一致
supplied:<br> 必须填写这项申请信息,</span></pre>
</div>
<div class="cnblogs_code"><img id="code_img_closed_378b65e6-0428-4c34-8fad-9792051233a3" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_378b65e6-0428-4c34-8fad-9792051233a3" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_378b65e6-0428-4c34-8fad-9792051233a3" class="cnblogs_code_hide">
<pre># <span style="color: rgba(0, 0, 255, 1)">egrep</span> -v <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">^ *#|^$</span><span style="color: rgba(128, 0, 0, 1)">"</span> /etc/pki/tls/<span style="color: rgba(0, 0, 0, 1)">openssl.cnf
HOME </span>=<span style="color: rgba(0, 0, 0, 1)"> .
RANDFILE </span>= $ENV::HOME/<span style="color: rgba(0, 0, 0, 1)">.rnd
oid_section </span>=<span style="color: rgba(0, 0, 0, 1)"> new_oids
[ new_oids ]
tsa_policy1 </span>= <span style="color: rgba(128, 0, 128, 1)">1.2</span>.<span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
tsa_policy2 </span>= <span style="color: rgba(128, 0, 128, 1)">1.2</span>.<span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">5.6</span><span style="color: rgba(0, 0, 0, 1)">
tsa_policy3 </span>= <span style="color: rgba(128, 0, 128, 1)">1.2</span>.<span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">5.7</span><span style="color: rgba(0, 0, 0, 1)">
[ ca ]
default_ca </span>=<span style="color: rgba(0, 0, 0, 1)"> CA_default # 默认的CA标题名称,该名称会定有很多CA服务器相关参数
[ CA_default ] # 上一行指定的CA标题名称就是这里定义的
</span><span style="color: rgba(0, 0, 255, 1)">dir</span> = /etc/pki/<span style="color: rgba(0, 0, 0, 1)">CA # 存放CA的目录
certs </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">certs # 存放证书的目录
crl_dir </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">crl # 存放证书吊销列表信息
database </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">index.txt # 一个文本文件用来保存已颁发证书的信息,该文件默认不存在,需要手动创建
new_certs_dir </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">newcerts # 默认存放新颁发的证书
certificate </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">cacert.pem # 指定CA的证书,即CA自签名证书
serial </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">serial # 指定下一个颁发证书的编号,该文件默认不存在,需要手动创建
crlnumber </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">crlnumber # 指定下一个吊销证书的编号
crl </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">crl.pem # 指定CRL证书文件文件名称
private_key </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/private/<span style="color: rgba(0, 0, 0, 1)">cakey.pem # 指定CA的私钥文件名称
RANDFILE </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/private/.rand # private random number <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
x509_extensions </span>=<span style="color: rgba(0, 0, 0, 1)"> usr_cert # The extentions to add to the cert
name_opt </span>=<span style="color: rgba(0, 0, 0, 1)"> ca_default # Subject Name options
cert_opt </span>=<span style="color: rgba(0, 0, 0, 1)"> ca_default # Certificate field options
default_days </span>= <span style="color: rgba(128, 0, 128, 1)">365</span><span style="color: rgba(0, 0, 0, 1)"> # 指定证书的默认有效期
default_crl_days</span>= <span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)"> # 指定多久发布一次CRL信息(证书吊销信息)
default_md </span>=<span style="color: rgba(0, 0, 0, 1)"> sha256 # 使用默认的加密算法
preserve </span>=<span style="color: rgba(0, 0, 0, 1)"> no # keep passed DN ordering
policy </span>=<span style="color: rgba(0, 0, 0, 1)"> policy_match #匹配策略名称,见下一行有定义该名称
[ policy_match ] #用于CA的策略证书
countryName </span>=<span style="color: rgba(0, 0, 0, 1)"> match #match要求申请填写的信息跟CA设置信息必须一致。国家信息要一样
stateOrProvinceName </span>=<span style="color: rgba(0, 0, 0, 1)"> match #同上,省份也要一样
organizationName </span>=<span style="color: rgba(0, 0, 0, 1)"> match #同上,一般情况下,自建的CA服务器国家,省份和组织单位都是一样的。
organizationalUnitName </span>=<span style="color: rgba(0, 0, 0, 1)"> optional #optional表示可选项,即可有可无,跟CA设置信息可不一致
commonName </span>=<span style="color: rgba(0, 0, 0, 1)"> supplied #supplied表示必须填写这项申请信息, 即填写用户申请的域名
emailAddress </span>=<span style="color: rgba(0, 0, 0, 1)"> optional #optional表示可选项,即邮箱可以写也可以不写
[ policy_anything ]
countryName </span>=<span style="color: rgba(0, 0, 0, 1)"> optional
stateOrProvinceName </span>=<span style="color: rgba(0, 0, 0, 1)"> optional
localityName </span>=<span style="color: rgba(0, 0, 0, 1)"> optional
organizationName </span>=<span style="color: rgba(0, 0, 0, 1)"> optional
organizationalUnitName </span>=<span style="color: rgba(0, 0, 0, 1)"> optional
commonName </span>=<span style="color: rgba(0, 0, 0, 1)"> supplied
emailAddress </span>=<span style="color: rgba(0, 0, 0, 1)"> optional
[ req ]
default_bits </span>= <span style="color: rgba(128, 0, 128, 1)">2048</span><span style="color: rgba(0, 0, 0, 1)">
default_md </span>=<span style="color: rgba(0, 0, 0, 1)"> sha256
default_keyfile </span>=<span style="color: rgba(0, 0, 0, 1)"> privkey.pem
distinguished_name </span>=<span style="color: rgba(0, 0, 0, 1)"> req_distinguished_name
attributes </span>=<span style="color: rgba(0, 0, 0, 1)"> req_attributes
x509_extensions </span>=<span style="color: rgba(0, 0, 0, 1)"> v3_ca # The extentions to add to the self signed cert
string_mask </span>=<span style="color: rgba(0, 0, 0, 1)"> utf8only
[ req_distinguished_name ]
countryName </span>= Country Name (<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> letter code)
countryName_default </span>=<span style="color: rgba(0, 0, 0, 1)"> XX
countryName_min </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
countryName_max </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
stateOrProvinceName </span>=<span style="color: rgba(0, 0, 0, 1)"> State or Province Name (full name)
localityName </span>=<span style="color: rgba(0, 0, 0, 1)"> Locality Name (eg, city)
localityName_default </span>=<span style="color: rgba(0, 0, 0, 1)"> Default City
</span><span style="color: rgba(128, 0, 128, 1)">0</span>.organizationName =<span style="color: rgba(0, 0, 0, 1)"> Organization Name (eg, company)
</span><span style="color: rgba(128, 0, 128, 1)">0</span>.organizationName_default =<span style="color: rgba(0, 0, 0, 1)"> Default Company Ltd
organizationalUnitName </span>=<span style="color: rgba(0, 0, 0, 1)"> Organizational Unit Name (eg, section)
commonName </span>= Common Name (eg, your name or your server\<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s hostname)</span>
commonName_max = <span style="color: rgba(128, 0, 128, 1)">64</span><span style="color: rgba(0, 0, 0, 1)">
emailAddress </span>=<span style="color: rgba(0, 0, 0, 1)"> Email Address
emailAddress_max </span>= <span style="color: rgba(128, 0, 128, 1)">64</span><span style="color: rgba(0, 0, 0, 1)">
[ req_attributes ]
challengePassword </span>=<span style="color: rgba(0, 0, 0, 1)"> A challenge password
challengePassword_min </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">
challengePassword_max </span>= <span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">
unstructuredName </span>=<span style="color: rgba(0, 0, 0, 1)"> An optional company name
[ usr_cert ]
basicConstraints</span>=<span style="color: rgba(0, 0, 0, 1)">CA:FALSE
nsComment </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">OpenSSL Generated Certificate</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
subjectKeyIdentifier</span>=<span style="color: rgba(0, 0, 0, 1)">hash
authorityKeyIdentifier</span>=<span style="color: rgba(0, 0, 0, 1)">keyid,issuer
[ v3_req ]
basicConstraints </span>=<span style="color: rgba(0, 0, 0, 1)"> CA:FALSE
keyUsage </span>=<span style="color: rgba(0, 0, 0, 1)"> nonRepudiation, digitalSignature, keyEncipherment
[ v3_ca ]
subjectKeyIdentifier</span>=<span style="color: rgba(0, 0, 0, 1)">hash
authorityKeyIdentifier</span>=<span style="color: rgba(0, 0, 0, 1)">keyid:always,issuer
basicConstraints </span>= CA:<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
[ crl_ext ]
authorityKeyIdentifier</span>=<span style="color: rgba(0, 0, 0, 1)">keyid:always
[ proxy_cert_ext ]
basicConstraints</span>=<span style="color: rgba(0, 0, 0, 1)">CA:FALSE
nsComment </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">OpenSSL Generated Certificate</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
subjectKeyIdentifier</span>=<span style="color: rgba(0, 0, 0, 1)">hash
authorityKeyIdentifier</span>=<span style="color: rgba(0, 0, 0, 1)">keyid,issuer
proxyCertInfo</span>=critical,language:<span style="color: rgba(0, 0, 255, 1)">id</span>-ppl-anyLanguage,pathlen:<span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,policy:foo
[ tsa ]
default_tsa </span>=<span style="color: rgba(0, 0, 0, 1)"> tsa_config1 # the default TSA section
[ tsa_config1 ]
</span><span style="color: rgba(0, 0, 255, 1)">dir</span> = ./<span style="color: rgba(0, 0, 0, 1)">demoCA # TSA root directory
serial </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">tsaserial # The current serial number (mandatory)
crypto_device </span>= builtin # OpenSSL engine to use <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> signing
signer_cert </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/<span style="color: rgba(0, 0, 0, 1)">tsacert.pem # The TSA signing certificate
# (optional)
certs </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/cacert.pem # Certificate chain to include <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> reply
# (optional)
signer_key </span>= $<span style="color: rgba(0, 0, 255, 1)">dir</span>/private/<span style="color: rgba(0, 0, 0, 1)">tsakey.pem # The TSA private key (optional)
default_policy </span>= tsa_policy1 # Policy <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> request did not specify it
# (optional)
other_policies </span>=<span style="color: rgba(0, 0, 0, 1)"> tsa_policy2, tsa_policy3 # acceptable policies (optional)
digests </span>=<span style="color: rgba(0, 0, 0, 1)"> sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory)
accuracy </span>= secs:<span style="color: rgba(128, 0, 128, 1)">1</span>, millisecs:<span style="color: rgba(128, 0, 128, 1)">500</span>, microsecs:<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)"> # (optional)
clock_precision_digits</span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> # number of digits after dot. (optional)
ordering </span>= yes # Is ordering defined <span style="color: rgba(0, 0, 255, 1)">for</span> timestamps?<span style="color: rgba(0, 0, 0, 1)">
# (optional, default: no)
tsa_name </span>= yes # Must the TSA name be included <span style="color: rgba(0, 0, 255, 1)">in</span> the reply?<span style="color: rgba(0, 0, 0, 1)">
# (optional, default: no)
ess_cert_id_chain </span>= no # Must the ESS cert <span style="color: rgba(0, 0, 255, 1)">id</span> chain be included?<span style="color: rgba(0, 0, 0, 1)">
# (optional, default: no)
# </pre>
</div>
<span class="cnblogs_code_collapse"># egrep -v "^ *#|^$" /etc/pki/tls/openssl.cnf</span></div>
<p><span style="font-size: 18px; color: rgba(0, 0, 0, 1)"><strong>2>.生成私钥</strong></span></p>
<div class="cnblogs_code"><img id="code_img_closed_cd37663a-0a30-45ac-9d80-049388f9de3c" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_cd37663a-0a30-45ac-9d80-049388f9de3c" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_cd37663a-0a30-45ac-9d80-049388f9de3c" class="cnblogs_code_hide">
<pre># <span style="color: rgba(0, 0, 255, 1)">yum</span> -y <span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)"> tree
Loaded plugins: fastestmirror
Determining fastest mirrors
</span>*<span style="color: rgba(0, 0, 0, 1)"> base: mirror.bit.edu.cn
</span>*<span style="color: rgba(0, 0, 0, 1)"> extras: mirrors.tuna.tsinghua.edu.cn
</span>*<span style="color: rgba(0, 0, 0, 1)"> updates: mirrors.tuna.tsinghua.edu.cn
base </span>| <span style="color: rgba(128, 0, 128, 1)">3.6</span> kB<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span><span style="color: rgba(0, 0, 0, 1)">
extras </span>| <span style="color: rgba(128, 0, 128, 1)">2.9</span> kB<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span><span style="color: rgba(0, 0, 0, 1)">
updates </span>| <span style="color: rgba(128, 0, 128, 1)">2.9</span> kB<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span><span style="color: rgba(0, 0, 0, 1)">
(</span><span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">4</span>): base/<span style="color: rgba(128, 0, 128, 1)">7</span>/x86_64/group_gz | <span style="color: rgba(128, 0, 128, 1)">165</span> kB<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span><span style="color: rgba(0, 0, 0, 1)">
(</span><span style="color: rgba(128, 0, 128, 1)">2</span>/<span style="color: rgba(128, 0, 128, 1)">4</span>): extras/<span style="color: rgba(128, 0, 128, 1)">7</span>/x86_64/primary_db | <span style="color: rgba(128, 0, 128, 1)">153</span> kB<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span><span style="color: rgba(0, 0, 0, 1)">
(</span><span style="color: rgba(128, 0, 128, 1)">3</span>/<span style="color: rgba(128, 0, 128, 1)">4</span>): base/<span style="color: rgba(128, 0, 128, 1)">7</span>/x86_64/primary_db | <span style="color: rgba(128, 0, 128, 1)">6.0</span> MB<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">01</span><span style="color: rgba(0, 0, 0, 1)">
(</span><span style="color: rgba(128, 0, 128, 1)">4</span>/<span style="color: rgba(128, 0, 128, 1)">4</span>): updates/<span style="color: rgba(128, 0, 128, 1)">7</span>/x86_64/primary_db | <span style="color: rgba(128, 0, 128, 1)">5.8</span> MB<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">01</span><span style="color: rgba(0, 0, 0, 1)">
Resolving Dependencies
</span>--><span style="color: rgba(0, 0, 0, 1)"> Running transaction check
</span>---> Package tree.x86_64 <span style="color: rgba(128, 0, 128, 1)">0</span>:<span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">.el7 will be installed
</span>--><span style="color: rgba(0, 0, 0, 1)"> Finished Dependency Resolution
Dependencies Resolved
</span>============================================================================================================================================================================<span style="color: rgba(0, 0, 0, 1)">
Package Arch Version Repository Size
</span>============================================================================================================================================================================<span style="color: rgba(0, 0, 0, 1)">
Installing:
tree x86_64 </span><span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">10</span>.el7 base <span style="color: rgba(128, 0, 128, 1)">46</span><span style="color: rgba(0, 0, 0, 1)"> k
Transaction Summary
</span>============================================================================================================================================================================<span style="color: rgba(0, 0, 0, 1)">
Install</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> Package
Total download size: </span><span style="color: rgba(128, 0, 128, 1)">46</span><span style="color: rgba(0, 0, 0, 1)"> k
Installed size: </span><span style="color: rgba(128, 0, 128, 1)">87</span><span style="color: rgba(0, 0, 0, 1)"> k
Downloading packages:
tree</span>-<span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">10</span>.el7.x86_64.rpm |<span style="color: rgba(128, 0, 128, 1)">46</span> kB<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">05</span><span style="color: rgba(0, 0, 0, 1)">
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : tree</span>-<span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">10</span>.el7.x86_64 <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
Verifying: tree</span>-<span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">10</span>.el7.x86_64 <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
Installed:
tree.x86_64 </span><span style="color: rgba(128, 0, 128, 1)">0</span>:<span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">.el7
Complete</span>!<span style="color: rgba(0, 0, 0, 1)">
# </pre>
</div>
<span class="cnblogs_code_collapse"># yum -y install tree</span></div>
<div class="cnblogs_code"><img id="code_img_closed_1d55d193-1977-456e-b00c-5d93106a9ce5" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_1d55d193-1977-456e-b00c-5d93106a9ce5" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_1d55d193-1977-456e-b00c-5d93106a9ce5" class="cnblogs_code_hide">
<pre># cd /etc/pki/CA/<span style="color: rgba(0, 0, 0, 1)">
#
# tree
.
├── certs
├── crl
├── newcerts
└── private
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# (umask <span style="color: rgba(128, 0, 128, 1)">077</span>;openssl genrsa -out private/cakey.pem <span style="color: rgba(128, 0, 128, 1)">2048</span><span style="color: rgba(0, 0, 0, 1)">)
Generating RSA private key, </span><span style="color: rgba(128, 0, 128, 1)">2048</span> bit <span style="color: rgba(0, 0, 255, 1)">long</span><span style="color: rgba(0, 0, 0, 1)"> modulus
...........................................................................................</span>+++<span style="color: rgba(0, 0, 0, 1)">
........</span>+++<span style="color: rgba(0, 0, 0, 1)">
e is </span><span style="color: rgba(128, 0, 128, 1)">65537</span> (<span style="color: rgba(128, 0, 128, 1)">0x10001</span><span style="color: rgba(0, 0, 0, 1)">)
#
# tree
.
├── certs
├── crl
├── newcerts
└── private
└── cakey.pem
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
#
# ll private/<span style="color: rgba(0, 0, 0, 1)">
total </span><span style="color: rgba(128, 0, 128, 1)">4</span>
-rw------- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">1675</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">02</span><span style="color: rgba(0, 0, 0, 1)"> cakey.pem
#
# </pre>
</div>
<span class="cnblogs_code_collapse"># (umask 077;openssl genrsa -out private/cakey.pem 2048)</span></div>
<p><span style="font-size: 18px; color: rgba(0, 0, 0, 1)"><strong>3>.生成自签名证书</strong></span></p>
<div class="cnblogs_code">
<pre># tree
.
├── certs
├── crl
├── newcerts
└── private
└── cakey.pem
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
#
# ll private/<span style="color: rgba(0, 0, 0, 1)">
total </span><span style="color: rgba(128, 0, 128, 1)">4</span>
-rw------- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">1675</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">02</span><span style="color: rgba(0, 0, 0, 1)"> cakey.pem
#
#
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days <span style="color: rgba(128, 0, 128, 1)">36500</span><span style="color: rgba(0, 0, 0, 1)">
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 </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">.</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, the field will be left blank.
</span>-----<span style="color: rgba(0, 0, 0, 1)">
Country Name (</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> letter code) :CN
State or Province Name (full name) []:shanxi
Locality Name (eg, city) :ankang
Organization Name (eg, company) :yinzhengjie
Organizational Unit Name (eg, section) []:devops
Common Name (eg, your name or your server</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s hostname) []:ca.yinzhengjie.org.cn</span>
<span style="color: rgba(0, 0, 0, 1)">Email Address []:
#
# tree
.
├── <span style="color: rgba(255, 0, 255, 1)">cacert.pem #新生成的证书文件,可以下载到windows系统查看,如下图所示(在windows系统需要修改文件后缀为crt才能打开哟).</span>
├── certs
├── crl
├── newcerts
└── private
└── cakey.pem
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> files
# </pre>
</div>
<p><img alt="" data-src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221131413371-1174178871.png"></p>
<p><span style="font-size: 18px"><strong> </strong></span></p>
<p><span style="font-size: 14pt; color: rgba(255, 0, 255, 1)"><strong>三.CA客户端申请证书</strong></span></p>
<p><span style="font-size: 18px; color: rgba(0, 0, 0, 1)"><strong>1>.生成私钥</strong></span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">mkdir</span> /data/ssl -<span style="color: rgba(0, 0, 0, 1)">pv
</span><span style="color: rgba(0, 0, 255, 1)">mkdir</span>: created directory ‘/<span style="color: rgba(0, 0, 0, 1)">data’
</span><span style="color: rgba(0, 0, 255, 1)">mkdir</span>: created directory ‘/data/<span style="color: rgba(0, 0, 0, 1)">ssl’
#
# cd /data/ssl/<span style="color: rgba(0, 0, 0, 1)">
#
# (umask <span style="color: rgba(128, 0, 128, 1)">066</span>;openssl genrsa -out myapp.key <span style="color: rgba(128, 0, 128, 1)">1024</span><span style="color: rgba(0, 0, 0, 1)">)
Generating RSA private key, </span><span style="color: rgba(128, 0, 128, 1)">1024</span> bit <span style="color: rgba(0, 0, 255, 1)">long</span><span style="color: rgba(0, 0, 0, 1)"> modulus
.</span>++++++<span style="color: rgba(0, 0, 0, 1)">
.....................................</span>++++++<span style="color: rgba(0, 0, 0, 1)">
e is </span><span style="color: rgba(128, 0, 128, 1)">65537</span> (<span style="color: rgba(128, 0, 128, 1)">0x10001</span><span style="color: rgba(0, 0, 0, 1)">)
#
# ll
total </span><span style="color: rgba(128, 0, 128, 1)">4</span>
-rw------- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">887</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)"> myapp.key
#
# </pre>
</div>
<p><span style="font-size: 18px; color: rgba(0, 0, 0, 1)"><strong>2>.利用私钥生成证书请求并发送至CA服务器上</strong></span></p>
<div class="cnblogs_code">
<pre># ll
total </span><span style="color: rgba(128, 0, 128, 1)">4</span>
-rw------- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">887</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)"> myapp.key
#
# openssl req -new -key myapp.key -<span style="color: rgba(0, 0, 0, 1)">out myapp.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 </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">.</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, the field will be left blank.
</span>-----<span style="color: rgba(0, 0, 0, 1)">
Country Name (</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> letter code) :CN
State or Province Name (full name) []:shanxi
Locality Name (eg, city) :ankang
Organization Name (eg, company) :yinzhengjie
Organizational Unit Name (eg, section) []:devops
Common Name (eg, your name or your server</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s hostname) []:*.yinzhengjie.org.cn </span>
<span style="color: rgba(0, 0, 0, 1)">Email Address []:
Please enter the following </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">extra</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)"> attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
#
# ll
total </span><span style="color: rgba(128, 0, 128, 1)">8</span>
-rw-r--r-- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">668</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)"> myapp.csr
</span>-rw------- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">887</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)"> myapp.key
# </span><span style="color: rgba(0, 0, 0, 1)">
# <span style="color: rgba(0, 0, 255, 1)">scp</span> myapp.csr node101.yinzhengjie.org.cn:/etc/pki/CA/<span style="color: rgba(0, 0, 0, 1)">
The authenticity of host </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">node101.yinzhengjie.org.cn (172.30.1.101)</span><span style="color: rgba(128, 0, 0, 1)">'</span> can<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">t be established.</span>
<span style="color: rgba(0, 0, 0, 1)">ECDSA key fingerprint is SHA256:KEchoZnVBkijeoWfG2nvx2ptthsXv7IjkxIJYule57g.
ECDSA key fingerprint is MD5:</span><span style="color: rgba(128, 0, 128, 1)">52</span>:c8:f5:6e:5f:cf:<span style="color: rgba(128, 0, 128, 1)">44</span>:ec:c4:<span style="color: rgba(128, 0, 128, 1)">11</span>:<span style="color: rgba(128, 0, 128, 1)">60</span>:d2:d0:<span style="color: rgba(128, 0, 128, 1)">31</span><span style="color: rgba(0, 0, 0, 1)">:3c:da.
Are you sure you want to continue connecting (yes</span>/no)?<span style="color: rgba(0, 0, 0, 1)"> yes
Warning: Permanently added </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">node101.yinzhengjie.org.cn,172.30.1.101</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)"> (ECDSA) to the list of known hosts.
root@node101.yinzhengjie.org.cn</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s password: </span>
myapp.csr <span style="color: rgba(128, 0, 128, 1)">100</span>%<span style="color: rgba(128, 0, 128, 1)">668</span> <span style="color: rgba(128, 0, 128, 1)">900</span>.0KB/s <span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span><span style="color: rgba(0, 0, 0, 1)">
#
# </pre>
</div>
<p><span style="font-size: 18px"><strong> </strong></span></p>
<p><span style="font-size: 14pt; color: rgba(255, 0, 255, 1)"><strong>四.颁发证书</strong></span></p>
<p><strong><span style="font-size: 18px">1>.颁发证书过程及故障排除</span></strong></p>
<div class="cnblogs_code">
<pre># tree
.
├── cacert.pem
├── certs
├── crl
├── myapp.csr
├── newcerts
└── private
└── cakey.pem
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# openssl ca -<span style="color: rgba(0, 0, 255, 1)">in</span> myapp.csr -out certs/myapp.crt -days <span style="color: rgba(128, 0, 128, 1)">1000</span><span style="color: rgba(0, 0, 0, 1)">
Using configuration from </span>/etc/pki/tls/<span style="color: rgba(0, 0, 0, 1)">openssl.cnf
</span><span style="color: rgba(255, 0, 255, 1)">/etc/pki/CA/index.txt: No such file</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(255, 0, 255, 1)"> or directory</span>
<span style="color: rgba(255, 0, 255, 1)">unable to open </span></span><span style="color: rgba(255, 0, 255, 1)">'/etc/pki/CA/index.txt'</span>
<span style="color: rgba(128, 0, 128, 1)">139995437246352</span>:error:<span style="color: rgba(128, 0, 128, 1)">02001002</span>:system library:fopen:No such <span style="color: rgba(0, 0, 255, 1)">file</span> or directory:bss_file.c:<span style="color: rgba(128, 0, 128, 1)">402</span>:fopen(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/etc/pki/CA/index.txt</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(128, 0, 128, 1)">139995437246352</span>:error:<span style="color: rgba(128, 0, 128, 1)">20074002</span>:BIO routines:FILE_CTRL:system lib:bss_file.c:<span style="color: rgba(128, 0, 128, 1)">404</span><span style="color: rgba(0, 0, 0, 1)">:
#
#
#
# <span style="color: rgba(0, 0, 255, 1)">touch</span><span style="color: rgba(0, 0, 0, 1)"> index.txt <span style="color: rgba(255, 0, 255, 1)">#根据上面的报错提示,说明缺少index.txt文件,因此我们手动创建出来</span>
#
# openssl ca -<span style="color: rgba(0, 0, 255, 1)">in</span> myapp.csr -out certs/myapp.crt -days <span style="color: rgba(128, 0, 128, 1)">1000</span><span style="color: rgba(0, 0, 0, 1)">
Using configuration from </span>/etc/pki/tls/<span style="color: rgba(0, 0, 0, 1)">openssl.cnf
</span><span style="color: rgba(255, 0, 255, 1)">/etc/pki/CA/serial: No such file or directory
error while loading serial number
</span><span style="color: rgba(128, 0, 128, 1)">139709222610832</span>:error:<span style="color: rgba(128, 0, 128, 1)">02001002</span>:system library:fopen:No such <span style="color: rgba(0, 0, 255, 1)">file</span> or directory:bss_file.c:<span style="color: rgba(128, 0, 128, 1)">402</span>:fopen(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/etc/pki/CA/serial</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(128, 0, 128, 1)">139709222610832</span>:error:<span style="color: rgba(128, 0, 128, 1)">20074002</span>:BIO routines:FILE_CTRL:system lib:bss_file.c:<span style="color: rgba(128, 0, 128, 1)">404</span><span style="color: rgba(0, 0, 0, 1)">:
#
# <span style="color: rgba(0, 0, 255, 1)">echo</span> 0F ><span style="color: rgba(0, 0, 0, 1)"> serial <span style="color: rgba(255, 0, 255, 1)"> #根据上面的提示,说明仍然是少了文件,因此我们继续手动创建出来</span>
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span><span style="color: rgba(0, 0, 0, 1)"> serial
0F
#
# openssl ca -<span style="color: rgba(0, 0, 255, 1)">in</span> myapp.csr -out certs/myapp.crt -days <span style="color: rgba(128, 0, 128, 1)">1000 <span style="color: rgba(255, 0, 255, 1)"> #执行颁发证书的指令</span></span><span style="color: rgba(0, 0, 0, 1)">
Using configuration from </span>/etc/pki/tls/<span style="color: rgba(0, 0, 0, 1)">openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: </span><span style="color: rgba(128, 0, 128, 1)">15</span> (<span style="color: rgba(128, 0, 128, 1)">0xf</span><span style="color: rgba(0, 0, 0, 1)">)
Validity
Not Before: Dec </span><span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">06</span>:<span style="color: rgba(128, 0, 128, 1)">27</span>:<span style="color: rgba(128, 0, 128, 1)">58</span> <span style="color: rgba(128, 0, 128, 1)">2019</span><span style="color: rgba(0, 0, 0, 1)"> GMT
Not After : Sep </span><span style="color: rgba(128, 0, 128, 1)">16</span> <span style="color: rgba(128, 0, 128, 1)">06</span>:<span style="color: rgba(128, 0, 128, 1)">27</span>:<span style="color: rgba(128, 0, 128, 1)">58</span> <span style="color: rgba(128, 0, 128, 1)">2022</span><span style="color: rgba(0, 0, 0, 1)"> GMT
Subject:
countryName </span>=<span style="color: rgba(0, 0, 0, 1)"> CN
stateOrProvinceName </span>=<span style="color: rgba(0, 0, 0, 1)"> shanxi
organizationName </span>=<span style="color: rgba(0, 0, 0, 1)"> yinzhengjie
organizationalUnitName </span>=<span style="color: rgba(0, 0, 0, 1)"> devops
commonName </span>= *<span style="color: rgba(0, 0, 0, 1)">.yinzhengjie.org.cn
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
D0:F2:4D:0E:</span><span style="color: rgba(128, 0, 128, 1)">32</span>:E5:FF:0D:AC:<span style="color: rgba(128, 0, 128, 1)">51</span>:B2:B3:7C:<span style="color: rgba(128, 0, 128, 1)">23</span>:<span style="color: rgba(128, 0, 128, 1)">12</span>:F2:AB:<span style="color: rgba(128, 0, 128, 1)">31</span>:C1:<span style="color: rgba(128, 0, 128, 1)">74</span><span style="color: rgba(0, 0, 0, 1)">
X509v3 Authority Key Identifier:
keyid:</span><span style="color: rgba(128, 0, 128, 1)">61</span>:3E:<span style="color: rgba(128, 0, 128, 1)">46</span>:F0:EA:BE:7F:DA:8B:A4:7A:F6:<span style="color: rgba(128, 0, 128, 1)">89</span>:<span style="color: rgba(128, 0, 128, 1)">35</span>:F0:9A:<span style="color: rgba(128, 0, 128, 1)">65</span>:BC:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">
Certificate is to be certified </span><span style="color: rgba(0, 0, 255, 1)">until</span> Sep <span style="color: rgba(128, 0, 128, 1)">16</span> <span style="color: rgba(128, 0, 128, 1)">06</span>:<span style="color: rgba(128, 0, 128, 1)">27</span>:<span style="color: rgba(128, 0, 128, 1)">58</span> <span style="color: rgba(128, 0, 128, 1)">2022</span> GMT (<span style="color: rgba(128, 0, 128, 1)">1000</span><span style="color: rgba(0, 0, 0, 1)"> days)
Sign the certificate</span>? :y
</span><span style="color: rgba(128, 0, 128, 1)">1</span> out of <span style="color: rgba(128, 0, 128, 1)">1</span> certificate requests certified, commit? y
Write out database with </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> new entries
Data Base Updated
#
# tree
.
├── cacert.pem
├── certs
│ └── myapp.crt
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── myapp.csr
├── newcerts
│ └── 0F.pem
├── private
│ └── cakey.pem
├── serial
└── serial.old
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)"> files
#
#
# ll certs/myapp.crt newcerts/<span style="color: rgba(0, 0, 0, 1)">0F.pem <span style="color: rgba(255, 0, 255, 1)"> #我们发现这两个新生成的文件大小是一样的
</span></span>-rw-r--r-- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">3771</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">30</span> certs/<span style="color: rgba(0, 0, 0, 1)">myapp.crt
</span>-rw-r--r-- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">3771</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">30</span> newcerts/<span style="color: rgba(0, 0, 0, 1)">0F.pem
#
# <span style="color: rgba(0, 0, 255, 1)">diff</span> certs/myapp.crt newcerts/<span style="color: rgba(0, 0, 0, 1)">0F.pem <span style="color: rgba(255, 0, 255, 1)"> #很显然,这两个文件内容是一样的</span>
#
# </pre>
</div>
<p><strong><span style="font-size: 18px">2>.查看证书信息</span></strong></p>
<div class="cnblogs_code"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_126d96a6-fe4e-4544-971b-09f42f312430" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_126d96a6-fe4e-4544-971b-09f42f312430" class="cnblogs_code_hide">
<pre># <span style="color: rgba(0, 0, 255, 1)">cat</span> newcerts/<span style="color: rgba(0, 0, 0, 1)">0F.pem #查看证书信息
Certificate:
Data:
Version: </span><span style="color: rgba(128, 0, 128, 1)">3</span> (<span style="color: rgba(128, 0, 128, 1)">0x2</span><span style="color: rgba(0, 0, 0, 1)">)
Serial Number: </span><span style="color: rgba(128, 0, 128, 1)">15</span> (<span style="color: rgba(128, 0, 128, 1)">0xf</span><span style="color: rgba(0, 0, 0, 1)">)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C</span>=CN, ST=shanxi, L=ankang, O=yinzhengjie, OU=devops, CN=<span style="color: rgba(0, 0, 0, 1)">ca.yinzhengjie.org.cn
Validity
Not Before: Dec </span><span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">06</span>:<span style="color: rgba(128, 0, 128, 1)">27</span>:<span style="color: rgba(128, 0, 128, 1)">58</span> <span style="color: rgba(128, 0, 128, 1)">2019</span><span style="color: rgba(0, 0, 0, 1)"> GMT
Not After : Sep </span><span style="color: rgba(128, 0, 128, 1)">16</span> <span style="color: rgba(128, 0, 128, 1)">06</span>:<span style="color: rgba(128, 0, 128, 1)">27</span>:<span style="color: rgba(128, 0, 128, 1)">58</span> <span style="color: rgba(128, 0, 128, 1)">2022</span><span style="color: rgba(0, 0, 0, 1)"> GMT
Subject: C</span>=CN, ST=shanxi, O=yinzhengjie, OU=devops, CN=*<span style="color: rgba(0, 0, 0, 1)">.yinzhengjie.org.cn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public</span>-Key: (<span style="color: rgba(128, 0, 128, 1)">1024</span><span style="color: rgba(0, 0, 0, 1)"> bit)
Modulus:
</span><span style="color: rgba(128, 0, 128, 1)">00</span>:b7:a1:2e:0c:f3:a4:e8:bc:<span style="color: rgba(128, 0, 128, 1)">41</span>:0b:9b:<span style="color: rgba(128, 0, 128, 1)">40</span>:3b:<span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">80</span>:ed:8d:<span style="color: rgba(128, 0, 128, 1)">03</span>:5a:e2:<span style="color: rgba(128, 0, 128, 1)">15</span>:4d:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(128, 0, 128, 1)">98</span>:<span style="color: rgba(0, 0, 255, 1)">cc</span><span style="color: rgba(0, 0, 0, 1)">:f5:1d:ef:bb:
</span><span style="color: rgba(128, 0, 128, 1)">26</span>:<span style="color: rgba(128, 0, 128, 1)">32</span>:d3:3e:a6:<span style="color: rgba(128, 0, 128, 1)">47</span>:f8:6d:<span style="color: rgba(128, 0, 128, 1)">24</span>:<span style="color: rgba(128, 0, 128, 1)">23</span>:<span style="color: rgba(128, 0, 128, 1)">35</span>:<span style="color: rgba(128, 0, 128, 1)">23</span>:fd:<span style="color: rgba(128, 0, 128, 1)">09</span>:<span style="color: rgba(0, 0, 255, 1)">cc</span><span style="color: rgba(0, 0, 0, 1)">:
5b:6d:</span><span style="color: rgba(128, 0, 128, 1)">25</span>:<span style="color: rgba(128, 0, 128, 1)">23</span>:<span style="color: rgba(128, 0, 128, 1)">96</span>:<span style="color: rgba(128, 0, 128, 1)">34</span>:<span style="color: rgba(128, 0, 128, 1)">90</span>:<span style="color: rgba(128, 0, 128, 1)">92</span>:ab:5f:ea:ae:<span style="color: rgba(128, 0, 128, 1)">21</span>:<span style="color: rgba(128, 0, 128, 1)">07</span>:<span style="color: rgba(128, 0, 128, 1)">67</span><span style="color: rgba(0, 0, 0, 1)">:
2c:</span><span style="color: rgba(128, 0, 128, 1)">51</span>:<span style="color: rgba(128, 0, 128, 1)">10</span>:e4:<span style="color: rgba(128, 0, 128, 1)">34</span>:5f:<span style="color: rgba(128, 0, 128, 1)">08</span>:ff:eb:0a:ea:2a:fa:6f:<span style="color: rgba(128, 0, 128, 1)">47</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">71</span>:<span style="color: rgba(128, 0, 128, 1)">88</span>:fb:d1:b4:7e:<span style="color: rgba(128, 0, 128, 1)">65</span>:a9:<span style="color: rgba(128, 0, 128, 1)">52</span>:ba:<span style="color: rgba(128, 0, 128, 1)">87</span><span style="color: rgba(0, 0, 0, 1)">:2e:1c:0f:f6:
</span><span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">56</span>:<span style="color: rgba(128, 0, 128, 1)">42</span>:e6:c5:ca:<span style="color: rgba(128, 0, 128, 1)">35</span>:<span style="color: rgba(128, 0, 128, 1)">64</span>:8c:<span style="color: rgba(128, 0, 128, 1)">96</span>:<span style="color: rgba(128, 0, 128, 1)">76</span><span style="color: rgba(0, 0, 0, 1)">:c7:5d:e0:b6:
d7:</span><span style="color: rgba(128, 0, 128, 1)">99</span>:e5:<span style="color: rgba(128, 0, 128, 1)">17</span>:b8:<span style="color: rgba(128, 0, 128, 1)">95</span>:ff:fb:<span style="color: rgba(128, 0, 128, 1)">22</span>:ca:<span style="color: rgba(128, 0, 128, 1)">99</span>:<span style="color: rgba(0, 0, 255, 1)">cc</span><span style="color: rgba(0, 0, 0, 1)">:d3:7c:6c:
</span><span style="color: rgba(128, 0, 128, 1)">70</span>:c4:b0:f7:f3:<span style="color: rgba(128, 0, 128, 1)">87</span>:<span style="color: rgba(128, 0, 128, 1)">32</span>:a2:<span style="color: rgba(128, 0, 128, 1)">45</span><span style="color: rgba(0, 0, 0, 1)">
Exponent: </span><span style="color: rgba(128, 0, 128, 1)">65537</span> (<span style="color: rgba(128, 0, 128, 1)">0x10001</span><span style="color: rgba(0, 0, 0, 1)">)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
D0:F2:4D:0E:</span><span style="color: rgba(128, 0, 128, 1)">32</span>:E5:FF:0D:AC:<span style="color: rgba(128, 0, 128, 1)">51</span>:B2:B3:7C:<span style="color: rgba(128, 0, 128, 1)">23</span>:<span style="color: rgba(128, 0, 128, 1)">12</span>:F2:AB:<span style="color: rgba(128, 0, 128, 1)">31</span>:C1:<span style="color: rgba(128, 0, 128, 1)">74</span><span style="color: rgba(0, 0, 0, 1)">
X509v3 Authority Key Identifier:
keyid:</span><span style="color: rgba(128, 0, 128, 1)">61</span>:3E:<span style="color: rgba(128, 0, 128, 1)">46</span>:F0:EA:BE:7F:DA:8B:A4:7A:F6:<span style="color: rgba(128, 0, 128, 1)">89</span>:<span style="color: rgba(128, 0, 128, 1)">35</span>:F0:9A:<span style="color: rgba(128, 0, 128, 1)">65</span>:BC:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">
Signature Algorithm: sha256WithRSAEncryption
</span><span style="color: rgba(128, 0, 128, 1)">29</span>:<span style="color: rgba(128, 0, 128, 1)">48</span>:7f:<span style="color: rgba(128, 0, 128, 1)">38</span>:fe:e5:c2:ad:fd:dc:c2:bc:0b:<span style="color: rgba(128, 0, 128, 1)">38</span>:<span style="color: rgba(128, 0, 128, 1)">88</span>:fb:<span style="color: rgba(128, 0, 128, 1)">99</span><span style="color: rgba(0, 0, 0, 1)">:a8:
2e:dc:</span><span style="color: rgba(128, 0, 128, 1)">69</span>:8c:f6:a9:<span style="color: rgba(128, 0, 128, 1)">24</span>:2d:2a:c1:<span style="color: rgba(128, 0, 128, 1)">27</span>:bb:<span style="color: rgba(128, 0, 128, 1)">50</span>:5c:<span style="color: rgba(128, 0, 128, 1)">16</span>:<span style="color: rgba(128, 0, 128, 1)">70</span>:<span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">:1f:
4a:a8:c3:a5:</span><span style="color: rgba(128, 0, 128, 1)">21</span>:1a:<span style="color: rgba(128, 0, 128, 1)">79</span>:<span style="color: rgba(128, 0, 128, 1)">30</span>:ac:0e:<span style="color: rgba(128, 0, 128, 1)">88</span>:<span style="color: rgba(128, 0, 128, 1)">82</span>:<span style="color: rgba(128, 0, 128, 1)">04</span>:<span style="color: rgba(0, 0, 255, 1)">dd</span>:f8:<span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">22</span>:<span style="color: rgba(128, 0, 128, 1)">56</span><span style="color: rgba(0, 0, 0, 1)">:
bd:fc:cf:</span><span style="color: rgba(128, 0, 128, 1)">86</span>:8a:cf:7e:<span style="color: rgba(128, 0, 128, 1)">88</span>:7a:<span style="color: rgba(128, 0, 128, 1)">34</span>:be:a7:3f:<span style="color: rgba(128, 0, 128, 1)">58</span>:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(0, 0, 255, 1)">cc</span>:<span style="color: rgba(128, 0, 128, 1)">33</span>:<span style="color: rgba(128, 0, 128, 1)">95</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">71</span>:6f:<span style="color: rgba(128, 0, 128, 1)">53</span>:<span style="color: rgba(128, 0, 128, 1)">39</span>:5c:c7:0b:fa:c5:<span style="color: rgba(128, 0, 128, 1)">66</span>:d2:2f:dc:d3:f4:<span style="color: rgba(128, 0, 128, 1)">86</span>:<span style="color: rgba(128, 0, 128, 1)">01</span>:<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">:
f2:</span><span style="color: rgba(128, 0, 128, 1)">63</span>:1b:0c:fc:3c:c1:<span style="color: rgba(128, 0, 128, 1)">92</span>:c2:c8:<span style="color: rgba(128, 0, 128, 1)">24</span>:ed:2a:<span style="color: rgba(128, 0, 128, 1)">76</span>:3b:<span style="color: rgba(128, 0, 128, 1)">37</span>:<span style="color: rgba(128, 0, 128, 1)">20</span>:<span style="color: rgba(128, 0, 128, 1)">93</span><span style="color: rgba(0, 0, 0, 1)">:
e1:</span><span style="color: rgba(128, 0, 128, 1)">47</span>:<span style="color: rgba(128, 0, 128, 1)">71</span>:<span style="color: rgba(128, 0, 128, 1)">26</span>:5d:3f:bf:d5:<span style="color: rgba(128, 0, 128, 1)">03</span>:<span style="color: rgba(128, 0, 128, 1)">62</span>:c2:<span style="color: rgba(128, 0, 128, 1)">49</span>:d8:<span style="color: rgba(128, 0, 128, 1)">84</span>:<span style="color: rgba(0, 0, 255, 1)">dd</span>:fe:1c:<span style="color: rgba(128, 0, 128, 1)">83</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">60</span>:<span style="color: rgba(128, 0, 128, 1)">43</span>:<span style="color: rgba(128, 0, 128, 1)">88</span>:<span style="color: rgba(128, 0, 128, 1)">77</span>:b7:c8:f2:3e:<span style="color: rgba(128, 0, 128, 1)">95</span>:<span style="color: rgba(128, 0, 128, 1)">63</span>:d1:<span style="color: rgba(128, 0, 128, 1)">57</span>:6c:f6:<span style="color: rgba(128, 0, 128, 1)">05</span><span style="color: rgba(0, 0, 0, 1)">:3d:b7:fc:
d9:</span><span style="color: rgba(128, 0, 128, 1)">80</span>:be:ad:<span style="color: rgba(128, 0, 128, 1)">39</span>:a2:f1:7f:b8:<span style="color: rgba(128, 0, 128, 1)">46</span>:<span style="color: rgba(128, 0, 128, 1)">59</span>:b2:2e:<span style="color: rgba(128, 0, 128, 1)">21</span>:a7:<span style="color: rgba(128, 0, 128, 1)">86</span>:<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">:e1:
7a:</span><span style="color: rgba(128, 0, 128, 1)">43</span>:<span style="color: rgba(128, 0, 128, 1)">95</span>:9b:1c:<span style="color: rgba(128, 0, 128, 1)">33</span>:7d:<span style="color: rgba(128, 0, 128, 1)">84</span>:<span style="color: rgba(128, 0, 128, 1)">03</span>:5d:<span style="color: rgba(128, 0, 128, 1)">98</span>:ce:c8:6f:eb:<span style="color: rgba(128, 0, 128, 1)">01</span><span style="color: rgba(0, 0, 0, 1)">:7e:d5:
</span><span style="color: rgba(128, 0, 128, 1)">82</span>:<span style="color: rgba(128, 0, 128, 1)">91</span>:c9:ea:a0:b1:<span style="color: rgba(128, 0, 128, 1)">67</span>:<span style="color: rgba(128, 0, 128, 1)">39</span>:3b:<span style="color: rgba(128, 0, 128, 1)">21</span>:f7:c2:<span style="color: rgba(128, 0, 128, 1)">50</span>:8f:8d:b2:a0:<span style="color: rgba(128, 0, 128, 1)">92</span><span style="color: rgba(0, 0, 0, 1)">:
c6:</span><span style="color: rgba(0, 0, 255, 1)">dd</span>:f3:<span style="color: rgba(128, 0, 128, 1)">76</span>:<span style="color: rgba(128, 0, 128, 1)">85</span>:de:3a:<span style="color: rgba(128, 0, 128, 1)">77</span>:<span style="color: rgba(128, 0, 128, 1)">03</span>:<span style="color: rgba(128, 0, 128, 1)">26</span>:3e:c2:b0:<span style="color: rgba(128, 0, 128, 1)">27</span>:ca:b1:<span style="color: rgba(128, 0, 128, 1)">44</span><span style="color: rgba(0, 0, 0, 1)">:2f:
fd:e2:</span><span style="color: rgba(128, 0, 128, 1)">75</span>:<span style="color: rgba(128, 0, 128, 1)">96</span>:9c:dc:f3:e5:d6:<span style="color: rgba(128, 0, 128, 1)">24</span>:<span style="color: rgba(128, 0, 128, 1)">62</span>:<span style="color: rgba(128, 0, 128, 1)">65</span>:<span style="color: rgba(128, 0, 128, 1)">44</span>:3a:<span style="color: rgba(128, 0, 128, 1)">42</span>:2c:<span style="color: rgba(128, 0, 128, 1)">08</span><span style="color: rgba(0, 0, 0, 1)">:4c:
</span><span style="color: rgba(128, 0, 128, 1)">18</span>:<span style="color: rgba(128, 0, 128, 1)">87</span>:<span style="color: rgba(128, 0, 128, 1)">41</span>:b7:<span style="color: rgba(128, 0, 128, 1)">09</span>:4e:<span style="color: rgba(128, 0, 128, 1)">68</span>:bf:9c:1c:0c:f0:ce:<span style="color: rgba(128, 0, 128, 1)">50</span>:af:be:<span style="color: rgba(128, 0, 128, 1)">33</span><span style="color: rgba(0, 0, 0, 1)">:a7:
ea:</span><span style="color: rgba(128, 0, 128, 1)">98</span><span style="color: rgba(0, 0, 0, 1)">:bf:af
</span>-----BEGIN CERTIFICATE-----<span style="color: rgba(0, 0, 0, 1)">
MIIDTDCCAjSgAwIBAgIBDzANBgkqhkiG9w0BAQsFADB2MQswCQYDVQQGEwJDTjEP
MA0GA1UECAwGc2hhbnhpMQ8wDQYDVQQHDAZhbmthbmcxFDASBgNVBAoMC3lpbnpo
ZW5namllMQ8wDQYDVQQLDAZkZXZvcHMxHjAcBgNVBAMMFWNhLnlpbnpoZW5namll
Lm9yZy5jbjAeFw0xOTEyMjEwNjI3NThaFw0yMjA5MTYwNjI3NThaMGQxCzAJBgNV
BAYTAkNOMQ8wDQYDVQQIDAZzaGFueGkxFDASBgNVBAoMC3lpbnpoZW5namllMQ8w
DQYDVQQLDAZkZXZvcHMxHTAbBgNVBAMMFCoueWluemhlbmdqaWUub3JnLmNuMIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3oS4M86TovEELm0A7JoDtjQNa4hVN
BZjM9R3vuyYy0z6mR</span>/htJCM1I/0JzFttJSOWNJCSq1/qriEHZyxREOQ0Xwj/<span style="color: rgba(0, 0, 0, 1)">6wrq
KvpvR3GI</span>+9G0fmWpUrqHLhwP9lVWQubFyjVkjJZ2x13gtteZ5Re4lf/<span style="color: rgba(0, 0, 0, 1)">7IsqZzNN8
bHDEsPfzhzKiRQIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG</span>+<span style="color: rgba(0, 0, 0, 1)">EIBDQQfFh1P
cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU0PJNDjLl</span>/<span style="color: rgba(0, 0, 0, 1)">w2s
UbKzfCMS8qsxwXQwHwYDVR0jBBgwFoAUYT5G8Oq</span>+<span style="color: rgba(0, 0, 0, 1)">f9qLpHr2iTXwmmW8BRMwDQYJ
KoZIhvcNAQELBQADggEBAClIfzj</span>+5cKt/<span style="color: rgba(0, 0, 0, 1)">dzCvAs4iPuZqC7caYz2qSQtKsEnu1Bc
FnAlH0qow6UhGnkwrA6IggTd</span>+BQiVr38z4aKz36IejS+<span style="color: rgba(0, 0, 0, 1)">pz9YBcwzlXFvUzlcxwv6
xWbSL9zT9IYBU</span>/JjGwz8PMGSwsgk7Sp2Ozcgk+FHcSZdP7/<span style="color: rgba(0, 0, 0, 1)">VA2LCSdiE3f4cg2BD
iHe3yPI</span>+lWPRV2z2BT23/NmAvq05ovF/<span style="color: rgba(0, 0, 0, 1)">uEZZsi4hp4ZT4XpDlZscM32EA12Yzshv
6wF</span>+1YKRyeqgsWc5OyH3wlCPjbKgksbd83aF3jp3AyY+wrAnyrFEL/<span style="color: rgba(0, 0, 0, 1)">3idZac3PPl
1iRiZUQ6QiwITBiHQbcJTmi</span>/nBwM8M5Qr74zp+qYv68=
-----END CERTIFICATE-----<span style="color: rgba(0, 0, 0, 1)">
#
# </pre>
</div>
<span class="cnblogs_code_collapse"># cat newcerts/0F.pem #查看证书信息,也可以直接查看myapp.crt证书文件,因为它们是一样的</span></div>
<p><strong><span style="font-size: 18px">3>.将证书下载到windows操作系统查看</span></strong></p>
<div class="cnblogs_code">
<pre># sz certs/<span style="color: rgba(0, 0, 0, 1)">myapp.crt #如下图所示,下载文件到本地,下载时选择crt结尾的,其实下载0F.pem也可以(因为文件内容相同),但windows识别crt格式的文件可以直接查看。
# </pre>
</div>
<p><img alt="" data-src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221144109394-726770748.png"></p>
<p><strong><span style="font-size: 18px"> 4>.颁发证书后查看文件内容变更</span></strong></p>
<div class="cnblogs_code">
<pre># tree
.
├── cacert.pem
├── certs
│ └── myapp.crt
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── myapp.csr
├── newcerts
│ └── 0F.pem
├── private
│ └── cakey.pem
├── serial
└── serial.old
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span> index.txt #该文件记录了证书文件相关信息,首字母<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">V</span><span style="color: rgba(128, 0, 0, 1)">"</span>表示证书有效,若证书被吊销的话,可能首字母是<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">R</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
V 220916062758Z 0F unknown </span>/C=CN/ST=shanxi/O=yinzhengjie/OU=devops/CN=*<span style="color: rgba(0, 0, 0, 1)">.yinzhengjie.org.cn
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span><span style="color: rgba(0, 0, 0, 1)"> serial
</span><span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(0, 0, 0, 1)">
# <span style="color: rgba(0, 0, 255, 1)">cat</span><span style="color: rgba(0, 0, 0, 1)"> index.txt.old #存放之前版本的信息
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span><span style="color: rgba(0, 0, 0, 1)"> serial.old #存放之前的版本信息
0F
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span><span style="color: rgba(0, 0, 0, 1)"> index.txt.attr #如果看到"unique_subject=yes"想必大家也猜到啥意思了,没错它规定了证书必须是唯一性的,也就是说我们不能对同一个证书请求多次颁发证书文件。
unique_subject </span>=<span style="color: rgba(0, 0, 0, 1)"> yes
# </pre>
</div>
<p> </p>
<p><span style="font-size: 14pt; color: rgba(255, 0, 255, 1)"><strong>五.windows导入咱们自己<strong>生成自签名证书</strong></strong></span></p>
<p><strong><span style="font-size: 18px">1>.如下图所示,咱们的操作系统"无法找到该证书的颁发者。",因此我们可以考虑将"*.yinzhengjie.org.cn"证书的颁发者证书也下载到本地导入并安装</span></strong></p>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221144352245-1641286702.png"> </p>
<p><strong><span style="font-size: 18px">2>.下载CA服务器证书到本地并更名为"*.crt"或者"*.cer"文件后缀,如下图所示(紧接着安装证书)</span></strong></p>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221145013877-1999325802.png"></p>
<p><strong><span style="font-size: 18px">3>.如下图所示,点击"安装证书"会弹出右侧的对话框,继续点击"下一步"</span></strong></p>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221145121080-1832723295.png"></p>
<p><strong><span style="font-size: 18px">4>.如下图所示,将我们的证书选择为"受信任的根证书颁发机构"</span></strong></p>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221145254465-124525331.png"></p>
<p><strong><span style="font-size: 18px">5>.配置完成后,点击"下一步"</span></strong></p>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221145358695-1133526555.png"></p>
<p><strong><span style="font-size: 18px">6>.继续点击"完成"</span></strong></p>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221145418809-791088508.png"></p>
<p><strong><span style="font-size: 18px">7>.接下来会弹出如下图所示的对话框以确认安装证书提示,点击"是"</span></strong></p>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221145549509-1291414763.png"></p>
<p><strong><span style="font-size: 18px">8>.点击"确定",证书导入成功</span></strong></p>
<p><strong><span style="font-size: 18px"><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221145622775-1603997724.png"></span></strong></p>
<p><strong><span style="font-size: 18px">9>.证书安装完成后,再次打开证书查看相应信息,如下图所示</span></strong></p>
<p><strong><span style="font-size: 18px"><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221145738151-588041505.png"></span></strong></p>
<p> </p>
<p><span style="color: rgba(255, 0, 255, 1)"><strong><span style="font-size: 14pt">六.使用openssl命令在命令行查看证书信息</span></strong></span></p>
<p><span style="color: rgba(0, 0, 0, 1); font-size: 18px"><strong>1>.将证书文件拷贝到客户端</strong></span></p>
<div class="cnblogs_code">
<pre># ll
total </span><span style="color: rgba(128, 0, 128, 1)">24</span>
-rw-r--r--<span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">1363</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">07</span><span style="color: rgba(0, 0, 0, 1)"> cacert.pem
drwxr</span>-xr-x. <span style="color: rgba(128, 0, 128, 1)">2</span> root root <span style="color: rgba(128, 0, 128, 1)">23</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)"> certs
drwxr</span>-xr-x. <span style="color: rgba(128, 0, 128, 1)">2</span> root root <span style="color: rgba(128, 0, 128, 1)">6</span> Oct <span style="color: rgba(128, 0, 128, 1)">31</span><span style="color: rgba(128, 0, 128, 1)">2018</span><span style="color: rgba(0, 0, 0, 1)"> crl
</span>-rw-r--r--<span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">92</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)"> index.txt
</span>-rw-r--r--<span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">21</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)"> index.txt.attr
</span>-rw-r--r--<span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">0</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)"> index.txt.old
</span>-rw-r--r--<span style="color: rgba(128, 0, 128, 1)">1</span> root root<span style="color: rgba(128, 0, 128, 1)">668</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">58</span><span style="color: rgba(0, 0, 0, 1)"> myapp.csr
drwxr</span>-xr-x. <span style="color: rgba(128, 0, 128, 1)">2</span> root root <span style="color: rgba(128, 0, 128, 1)">20</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)"> newcerts
drwx</span>------. <span style="color: rgba(128, 0, 128, 1)">2</span> root root <span style="color: rgba(128, 0, 128, 1)">23</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">02</span><span style="color: rgba(0, 0, 0, 1)"> private
</span>-rw-r--r--<span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">3</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)"> serial
</span>-rw-r--r--<span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">3</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">27</span><span style="color: rgba(0, 0, 0, 1)"> serial.old
#
# tree
.
├── cacert.pem
├── certs
│ └── myapp.crt
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── myapp.csr
├── newcerts
│ └── 0F.pem
├── private
│ └── cakey.pem
├── serial
└── serial.old
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# <span style="color: rgba(0, 0, 255, 1)">scp</span> certs/myapp.crt root@node108.yinzhengjie.org.cn:/data/<span style="color: rgba(0, 0, 0, 1)">ssl
myapp.crt </span><span style="color: rgba(128, 0, 128, 1)">100</span>% <span style="color: rgba(128, 0, 128, 1)">3771</span> <span style="color: rgba(128, 0, 128, 1)">5</span>.1MB/s <span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">00</span><span style="color: rgba(0, 0, 0, 1)">
# </pre>
</div>
<p><span style="color: rgba(0, 0, 0, 1)"><strong><span style="font-size: 18px">2>.客户端查看证书信息</span></strong></span></p>
<div class="cnblogs_code">
<pre># ll /data/ssl/<span style="color: rgba(0, 0, 0, 1)">
total </span><span style="color: rgba(128, 0, 128, 1)">12</span>
-rw-r--r-- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">3771</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">15</span>:<span style="color: rgba(128, 0, 128, 1)">01</span><span style="color: rgba(0, 0, 0, 1)"> myapp.crt
</span>-rw-r--r-- <span style="color: rgba(128, 0, 128, 1)">1</span> root root<span style="color: rgba(128, 0, 128, 1)">668</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)"> myapp.csr
</span>-rw------- <span style="color: rgba(128, 0, 128, 1)">1</span> root root<span style="color: rgba(128, 0, 128, 1)">887</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)"> myapp.key
#
# openssl x509 -<span style="color: rgba(0, 0, 255, 1)">in</span> /data/ssl/myapp.crt -noout -<span style="color: rgba(0, 0, 0, 1)">text <span style="color: rgba(255, 0, 255, 1)"> #以文本方式在客户端查看证书信息</span>
Certificate:
Data:
Version: </span><span style="color: rgba(128, 0, 128, 1)">3</span> (<span style="color: rgba(128, 0, 128, 1)">0x2</span><span style="color: rgba(0, 0, 0, 1)">)
Serial Number: </span><span style="color: rgba(128, 0, 128, 1)">15</span> (<span style="color: rgba(128, 0, 128, 1)">0xf</span><span style="color: rgba(0, 0, 0, 1)">)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C</span>=CN, ST=shanxi, L=ankang, O=yinzhengjie, OU=devops, CN=<span style="color: rgba(0, 0, 0, 1)">ca.yinzhengjie.org.cn
Validity
Not Before: Dec </span><span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">06</span>:<span style="color: rgba(128, 0, 128, 1)">27</span>:<span style="color: rgba(128, 0, 128, 1)">58</span> <span style="color: rgba(128, 0, 128, 1)">2019</span><span style="color: rgba(0, 0, 0, 1)"> GMT
Not After : Sep </span><span style="color: rgba(128, 0, 128, 1)">16</span> <span style="color: rgba(128, 0, 128, 1)">06</span>:<span style="color: rgba(128, 0, 128, 1)">27</span>:<span style="color: rgba(128, 0, 128, 1)">58</span> <span style="color: rgba(128, 0, 128, 1)">2022</span><span style="color: rgba(0, 0, 0, 1)"> GMT
Subject: C</span>=CN, ST=shanxi, O=yinzhengjie, OU=devops, CN=*<span style="color: rgba(0, 0, 0, 1)">.yinzhengjie.org.cn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public</span>-Key: (<span style="color: rgba(128, 0, 128, 1)">1024</span><span style="color: rgba(0, 0, 0, 1)"> bit)
Modulus:
</span><span style="color: rgba(128, 0, 128, 1)">00</span>:b7:a1:2e:0c:f3:a4:e8:bc:<span style="color: rgba(128, 0, 128, 1)">41</span>:0b:9b:<span style="color: rgba(128, 0, 128, 1)">40</span>:3b:<span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">80</span>:ed:8d:<span style="color: rgba(128, 0, 128, 1)">03</span>:5a:e2:<span style="color: rgba(128, 0, 128, 1)">15</span>:4d:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(128, 0, 128, 1)">98</span>:<span style="color: rgba(0, 0, 255, 1)">cc</span><span style="color: rgba(0, 0, 0, 1)">:f5:1d:ef:bb:
</span><span style="color: rgba(128, 0, 128, 1)">26</span>:<span style="color: rgba(128, 0, 128, 1)">32</span>:d3:3e:a6:<span style="color: rgba(128, 0, 128, 1)">47</span>:f8:6d:<span style="color: rgba(128, 0, 128, 1)">24</span>:<span style="color: rgba(128, 0, 128, 1)">23</span>:<span style="color: rgba(128, 0, 128, 1)">35</span>:<span style="color: rgba(128, 0, 128, 1)">23</span>:fd:<span style="color: rgba(128, 0, 128, 1)">09</span>:<span style="color: rgba(0, 0, 255, 1)">cc</span><span style="color: rgba(0, 0, 0, 1)">:
5b:6d:</span><span style="color: rgba(128, 0, 128, 1)">25</span>:<span style="color: rgba(128, 0, 128, 1)">23</span>:<span style="color: rgba(128, 0, 128, 1)">96</span>:<span style="color: rgba(128, 0, 128, 1)">34</span>:<span style="color: rgba(128, 0, 128, 1)">90</span>:<span style="color: rgba(128, 0, 128, 1)">92</span>:ab:5f:ea:ae:<span style="color: rgba(128, 0, 128, 1)">21</span>:<span style="color: rgba(128, 0, 128, 1)">07</span>:<span style="color: rgba(128, 0, 128, 1)">67</span><span style="color: rgba(0, 0, 0, 1)">:
2c:</span><span style="color: rgba(128, 0, 128, 1)">51</span>:<span style="color: rgba(128, 0, 128, 1)">10</span>:e4:<span style="color: rgba(128, 0, 128, 1)">34</span>:5f:<span style="color: rgba(128, 0, 128, 1)">08</span>:ff:eb:0a:ea:2a:fa:6f:<span style="color: rgba(128, 0, 128, 1)">47</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">71</span>:<span style="color: rgba(128, 0, 128, 1)">88</span>:fb:d1:b4:7e:<span style="color: rgba(128, 0, 128, 1)">65</span>:a9:<span style="color: rgba(128, 0, 128, 1)">52</span>:ba:<span style="color: rgba(128, 0, 128, 1)">87</span><span style="color: rgba(0, 0, 0, 1)">:2e:1c:0f:f6:
</span><span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">56</span>:<span style="color: rgba(128, 0, 128, 1)">42</span>:e6:c5:ca:<span style="color: rgba(128, 0, 128, 1)">35</span>:<span style="color: rgba(128, 0, 128, 1)">64</span>:8c:<span style="color: rgba(128, 0, 128, 1)">96</span>:<span style="color: rgba(128, 0, 128, 1)">76</span><span style="color: rgba(0, 0, 0, 1)">:c7:5d:e0:b6:
d7:</span><span style="color: rgba(128, 0, 128, 1)">99</span>:e5:<span style="color: rgba(128, 0, 128, 1)">17</span>:b8:<span style="color: rgba(128, 0, 128, 1)">95</span>:ff:fb:<span style="color: rgba(128, 0, 128, 1)">22</span>:ca:<span style="color: rgba(128, 0, 128, 1)">99</span>:<span style="color: rgba(0, 0, 255, 1)">cc</span><span style="color: rgba(0, 0, 0, 1)">:d3:7c:6c:
</span><span style="color: rgba(128, 0, 128, 1)">70</span>:c4:b0:f7:f3:<span style="color: rgba(128, 0, 128, 1)">87</span>:<span style="color: rgba(128, 0, 128, 1)">32</span>:a2:<span style="color: rgba(128, 0, 128, 1)">45</span><span style="color: rgba(0, 0, 0, 1)">
Exponent: </span><span style="color: rgba(128, 0, 128, 1)">65537</span> (<span style="color: rgba(128, 0, 128, 1)">0x10001</span><span style="color: rgba(0, 0, 0, 1)">)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
D0:F2:4D:0E:</span><span style="color: rgba(128, 0, 128, 1)">32</span>:E5:FF:0D:AC:<span style="color: rgba(128, 0, 128, 1)">51</span>:B2:B3:7C:<span style="color: rgba(128, 0, 128, 1)">23</span>:<span style="color: rgba(128, 0, 128, 1)">12</span>:F2:AB:<span style="color: rgba(128, 0, 128, 1)">31</span>:C1:<span style="color: rgba(128, 0, 128, 1)">74</span><span style="color: rgba(0, 0, 0, 1)">
X509v3 Authority Key Identifier:
keyid:</span><span style="color: rgba(128, 0, 128, 1)">61</span>:3E:<span style="color: rgba(128, 0, 128, 1)">46</span>:F0:EA:BE:7F:DA:8B:A4:7A:F6:<span style="color: rgba(128, 0, 128, 1)">89</span>:<span style="color: rgba(128, 0, 128, 1)">35</span>:F0:9A:<span style="color: rgba(128, 0, 128, 1)">65</span>:BC:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">
Signature Algorithm: sha256WithRSAEncryption
</span><span style="color: rgba(128, 0, 128, 1)">29</span>:<span style="color: rgba(128, 0, 128, 1)">48</span>:7f:<span style="color: rgba(128, 0, 128, 1)">38</span>:fe:e5:c2:ad:fd:dc:c2:bc:0b:<span style="color: rgba(128, 0, 128, 1)">38</span>:<span style="color: rgba(128, 0, 128, 1)">88</span>:fb:<span style="color: rgba(128, 0, 128, 1)">99</span><span style="color: rgba(0, 0, 0, 1)">:a8:
2e:dc:</span><span style="color: rgba(128, 0, 128, 1)">69</span>:8c:f6:a9:<span style="color: rgba(128, 0, 128, 1)">24</span>:2d:2a:c1:<span style="color: rgba(128, 0, 128, 1)">27</span>:bb:<span style="color: rgba(128, 0, 128, 1)">50</span>:5c:<span style="color: rgba(128, 0, 128, 1)">16</span>:<span style="color: rgba(128, 0, 128, 1)">70</span>:<span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">:1f:
4a:a8:c3:a5:</span><span style="color: rgba(128, 0, 128, 1)">21</span>:1a:<span style="color: rgba(128, 0, 128, 1)">79</span>:<span style="color: rgba(128, 0, 128, 1)">30</span>:ac:0e:<span style="color: rgba(128, 0, 128, 1)">88</span>:<span style="color: rgba(128, 0, 128, 1)">82</span>:<span style="color: rgba(128, 0, 128, 1)">04</span>:<span style="color: rgba(0, 0, 255, 1)">dd</span>:f8:<span style="color: rgba(128, 0, 128, 1)">14</span>:<span style="color: rgba(128, 0, 128, 1)">22</span>:<span style="color: rgba(128, 0, 128, 1)">56</span><span style="color: rgba(0, 0, 0, 1)">:
bd:fc:cf:</span><span style="color: rgba(128, 0, 128, 1)">86</span>:8a:cf:7e:<span style="color: rgba(128, 0, 128, 1)">88</span>:7a:<span style="color: rgba(128, 0, 128, 1)">34</span>:be:a7:3f:<span style="color: rgba(128, 0, 128, 1)">58</span>:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(0, 0, 255, 1)">cc</span>:<span style="color: rgba(128, 0, 128, 1)">33</span>:<span style="color: rgba(128, 0, 128, 1)">95</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">71</span>:6f:<span style="color: rgba(128, 0, 128, 1)">53</span>:<span style="color: rgba(128, 0, 128, 1)">39</span>:5c:c7:0b:fa:c5:<span style="color: rgba(128, 0, 128, 1)">66</span>:d2:2f:dc:d3:f4:<span style="color: rgba(128, 0, 128, 1)">86</span>:<span style="color: rgba(128, 0, 128, 1)">01</span>:<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">:
f2:</span><span style="color: rgba(128, 0, 128, 1)">63</span>:1b:0c:fc:3c:c1:<span style="color: rgba(128, 0, 128, 1)">92</span>:c2:c8:<span style="color: rgba(128, 0, 128, 1)">24</span>:ed:2a:<span style="color: rgba(128, 0, 128, 1)">76</span>:3b:<span style="color: rgba(128, 0, 128, 1)">37</span>:<span style="color: rgba(128, 0, 128, 1)">20</span>:<span style="color: rgba(128, 0, 128, 1)">93</span><span style="color: rgba(0, 0, 0, 1)">:
e1:</span><span style="color: rgba(128, 0, 128, 1)">47</span>:<span style="color: rgba(128, 0, 128, 1)">71</span>:<span style="color: rgba(128, 0, 128, 1)">26</span>:5d:3f:bf:d5:<span style="color: rgba(128, 0, 128, 1)">03</span>:<span style="color: rgba(128, 0, 128, 1)">62</span>:c2:<span style="color: rgba(128, 0, 128, 1)">49</span>:d8:<span style="color: rgba(128, 0, 128, 1)">84</span>:<span style="color: rgba(0, 0, 255, 1)">dd</span>:fe:1c:<span style="color: rgba(128, 0, 128, 1)">83</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">60</span>:<span style="color: rgba(128, 0, 128, 1)">43</span>:<span style="color: rgba(128, 0, 128, 1)">88</span>:<span style="color: rgba(128, 0, 128, 1)">77</span>:b7:c8:f2:3e:<span style="color: rgba(128, 0, 128, 1)">95</span>:<span style="color: rgba(128, 0, 128, 1)">63</span>:d1:<span style="color: rgba(128, 0, 128, 1)">57</span>:6c:f6:<span style="color: rgba(128, 0, 128, 1)">05</span><span style="color: rgba(0, 0, 0, 1)">:3d:b7:fc:
d9:</span><span style="color: rgba(128, 0, 128, 1)">80</span>:be:ad:<span style="color: rgba(128, 0, 128, 1)">39</span>:a2:f1:7f:b8:<span style="color: rgba(128, 0, 128, 1)">46</span>:<span style="color: rgba(128, 0, 128, 1)">59</span>:b2:2e:<span style="color: rgba(128, 0, 128, 1)">21</span>:a7:<span style="color: rgba(128, 0, 128, 1)">86</span>:<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">:e1:
7a:</span><span style="color: rgba(128, 0, 128, 1)">43</span>:<span style="color: rgba(128, 0, 128, 1)">95</span>:9b:1c:<span style="color: rgba(128, 0, 128, 1)">33</span>:7d:<span style="color: rgba(128, 0, 128, 1)">84</span>:<span style="color: rgba(128, 0, 128, 1)">03</span>:5d:<span style="color: rgba(128, 0, 128, 1)">98</span>:ce:c8:6f:eb:<span style="color: rgba(128, 0, 128, 1)">01</span><span style="color: rgba(0, 0, 0, 1)">:7e:d5:
</span><span style="color: rgba(128, 0, 128, 1)">82</span>:<span style="color: rgba(128, 0, 128, 1)">91</span>:c9:ea:a0:b1:<span style="color: rgba(128, 0, 128, 1)">67</span>:<span style="color: rgba(128, 0, 128, 1)">39</span>:3b:<span style="color: rgba(128, 0, 128, 1)">21</span>:f7:c2:<span style="color: rgba(128, 0, 128, 1)">50</span>:8f:8d:b2:a0:<span style="color: rgba(128, 0, 128, 1)">92</span><span style="color: rgba(0, 0, 0, 1)">:
c6:</span><span style="color: rgba(0, 0, 255, 1)">dd</span>:f3:<span style="color: rgba(128, 0, 128, 1)">76</span>:<span style="color: rgba(128, 0, 128, 1)">85</span>:de:3a:<span style="color: rgba(128, 0, 128, 1)">77</span>:<span style="color: rgba(128, 0, 128, 1)">03</span>:<span style="color: rgba(128, 0, 128, 1)">26</span>:3e:c2:b0:<span style="color: rgba(128, 0, 128, 1)">27</span>:ca:b1:<span style="color: rgba(128, 0, 128, 1)">44</span><span style="color: rgba(0, 0, 0, 1)">:2f:
fd:e2:</span><span style="color: rgba(128, 0, 128, 1)">75</span>:<span style="color: rgba(128, 0, 128, 1)">96</span>:9c:dc:f3:e5:d6:<span style="color: rgba(128, 0, 128, 1)">24</span>:<span style="color: rgba(128, 0, 128, 1)">62</span>:<span style="color: rgba(128, 0, 128, 1)">65</span>:<span style="color: rgba(128, 0, 128, 1)">44</span>:3a:<span style="color: rgba(128, 0, 128, 1)">42</span>:2c:<span style="color: rgba(128, 0, 128, 1)">08</span><span style="color: rgba(0, 0, 0, 1)">:4c:
</span><span style="color: rgba(128, 0, 128, 1)">18</span>:<span style="color: rgba(128, 0, 128, 1)">87</span>:<span style="color: rgba(128, 0, 128, 1)">41</span>:b7:<span style="color: rgba(128, 0, 128, 1)">09</span>:4e:<span style="color: rgba(128, 0, 128, 1)">68</span>:bf:9c:1c:0c:f0:ce:<span style="color: rgba(128, 0, 128, 1)">50</span>:af:be:<span style="color: rgba(128, 0, 128, 1)">33</span><span style="color: rgba(0, 0, 0, 1)">:a7:
ea:</span><span style="color: rgba(128, 0, 128, 1)">98</span><span style="color: rgba(0, 0, 0, 1)">:bf:af
#
# </pre>
</div>
<p> </p>
<p><span style="color: rgba(255, 0, 255, 1)"><strong><span style="font-size: 14pt">七.吊销证书</span></strong></span></p>
<p><strong><span style="font-size: 18px">1>.吊销证书</span></strong></p>
<div class="cnblogs_code">
<pre># tree
.
├── cacert.pem
├── certs
│ └── myapp.crt
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── myapp.csr
├── newcerts
│ └── 0F.pem
├── private
│ └── cakey.pem
├── serial
└── serial.old
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span><span style="color: rgba(0, 0, 0, 1)"> index.txt <span style="color: rgba(255, 0, 255, 1)">#注意第一个字母是"V",说明该证书是可以正常使用的</span>
V 220916062758Z 0F unknown </span>/C=CN/ST=shanxi/O=yinzhengjie/OU=devops/CN=*<span style="color: rgba(0, 0, 0, 1)">.yinzhengjie.org.cn
#
# openssl ca -revoke certs/<span style="color: rgba(0, 0, 0, 1)">myapp.crt <span style="color: rgba(255, 0, 255, 1)">#我们将指定的证书吊销</span>
Using configuration from </span>/etc/pki/tls/<span style="color: rgba(0, 0, 0, 1)">openssl.cnf
Revoking Certificate 0F.
Data Base Updated
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span><span style="color: rgba(0, 0, 0, 1)"> index.txt <span style="color: rgba(255, 0, 255, 1)">#注意观察第一个字母是"R",说明该 证书已经被吊销了</span>
R 220916062758Z 191221071820Z 0F unknown </span>/C=CN/ST=shanxi/O=yinzhengjie/OU=devops/CN=*<span style="color: rgba(0, 0, 0, 1)">.yinzhengjie.org.cn
# </pre>
</div>
<p><strong><span style="font-size: 18px">2>.生成吊销证书列表CRL</span></strong></p>
<div class="cnblogs_code">
<pre># tree
.
├── cacert.pem
├── certs
│ └── myapp.crt
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── myapp.csr
├── newcerts
│ └── 0F.pem
├── private
│ └── cakey.pem
├── serial
└── serial.old
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# openssl ca -gencrl -<span style="color: rgba(0, 0, 0, 1)">out crl.pem
Using configuration from </span>/etc/pki/tls/<span style="color: rgba(0, 0, 0, 1)">openssl.cnf
</span><span style="color: rgba(255, 0, 255, 1)">/etc/pki/CA/crlnumber: No such file</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(255, 0, 255, 1)"> or directory</span>
<span style="color: rgba(255, 0, 255, 1)">error </span></span><span style="color: rgba(255, 0, 255, 1)">while loading CRL number
140432981714832:error:02001002:system library:fopen:No such file or directory:bss_file.c:402:fopen('/etc/pki/CA/crlnumber','r')
</span><span style="color: rgba(128, 0, 128, 1)">140432981714832</span>:error:<span style="color: rgba(128, 0, 128, 1)">20074002</span>:BIO routines:FILE_CTRL:system lib:bss_file.c:<span style="color: rgba(128, 0, 128, 1)">404</span><span style="color: rgba(0, 0, 0, 1)">:
#
# <span style="color: rgba(0, 0, 255, 1)">echo</span> FF ><span style="color: rgba(0, 0, 0, 1)"> crlnumber #根据报错可知是缺少证书吊销列表的编号文件
#
# openssl ca -gencrl -<span style="color: rgba(0, 0, 0, 1)">out crl.pem #生成证书吊销列表
Using configuration from </span>/etc/pki/tls/<span style="color: rgba(0, 0, 0, 1)">openssl.cnf
#
# <span style="color: rgba(0, 0, 255, 1)">cat</span><span style="color: rgba(0, 0, 0, 1)"> crlnumber
</span><span style="color: rgba(128, 0, 128, 1)">0100</span><span style="color: rgba(0, 0, 0, 1)">
#
#
# tree
.
├── cacert.pem
├── certs
│ └── myapp.crt
├── crl
├── crlnumber
├── crlnumber.old
├── crl.pem
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── myapp.csr
├── newcerts
│ └── 0F.pem
├── private
│ └── cakey.pem
├── serial
└── serial.old
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# </pre>
</div>
<p><strong><span style="font-size: 18px">3>.查看已经被吊销的证书列表</span></strong></p>
<div class="cnblogs_code">
<pre># tree
.
├── cacert.pem
├── certs
│ └── myapp.crt
├── crl
├── crlnumber
├── crlnumber.old
├── crl.pem
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── myapp.csr
├── newcerts
│ └── 0F.pem
├── private
│ └── cakey.pem
├── serial
└── serial.old
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# openssl crl -<span style="color: rgba(0, 0, 255, 1)">in</span> /etc/pki/CA/crl.pem -noout -<span style="color: rgba(0, 0, 0, 1)">text
Certificate Revocation List (CRL):
Version </span><span style="color: rgba(128, 0, 128, 1)">2</span> (<span style="color: rgba(128, 0, 128, 1)">0x1</span><span style="color: rgba(0, 0, 0, 1)">)
Signature Algorithm: sha256WithRSAEncryption
Issuer: </span>/C=CN/ST=shanxi/L=ankang/O=yinzhengjie/OU=devops/CN=<span style="color: rgba(0, 0, 0, 1)">ca.yinzhengjie.org.cn
Last Update: Dec </span><span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">07</span>:<span style="color: rgba(128, 0, 128, 1)">22</span>:<span style="color: rgba(128, 0, 128, 1)">48</span> <span style="color: rgba(128, 0, 128, 1)">2019</span><span style="color: rgba(0, 0, 0, 1)"> GMT
Next Update: Jan </span><span style="color: rgba(128, 0, 128, 1)">20</span> <span style="color: rgba(128, 0, 128, 1)">07</span>:<span style="color: rgba(128, 0, 128, 1)">22</span>:<span style="color: rgba(128, 0, 128, 1)">48</span> <span style="color: rgba(128, 0, 128, 1)">2020</span><span style="color: rgba(0, 0, 0, 1)"> GMT
CRL extensions:
X509v3 CRL Number:
</span><span style="color: rgba(128, 0, 128, 1)">255</span><span style="color: rgba(0, 0, 0, 1)">
Revoked Certificates:
Serial Number: 0F
Revocation Date: Dec </span><span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">07</span>:<span style="color: rgba(128, 0, 128, 1)">18</span>:<span style="color: rgba(128, 0, 128, 1)">20</span> <span style="color: rgba(128, 0, 128, 1)">2019</span><span style="color: rgba(0, 0, 0, 1)"> GMT
Signature Algorithm: sha256WithRSAEncryption
b5:</span><span style="color: rgba(128, 0, 128, 1)">05</span>:5a:ee:3d:e2:7c:d8:<span style="color: rgba(128, 0, 128, 1)">11</span>:<span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">36</span>:a3:<span style="color: rgba(128, 0, 128, 1)">01</span>:<span style="color: rgba(128, 0, 128, 1)">43</span>:b8:a7:c4:<span style="color: rgba(128, 0, 128, 1)">65</span><span style="color: rgba(0, 0, 0, 1)">:
da:a7:</span><span style="color: rgba(128, 0, 128, 1)">87</span>:9f:ff:<span style="color: rgba(128, 0, 128, 1)">17</span>:c0:<span style="color: rgba(128, 0, 128, 1)">46</span>:<span style="color: rgba(128, 0, 128, 1)">45</span>:5e:ca:6e:<span style="color: rgba(128, 0, 128, 1)">46</span>:f6:<span style="color: rgba(128, 0, 128, 1)">30</span>:ed:e0:<span style="color: rgba(128, 0, 128, 1)">58</span><span style="color: rgba(0, 0, 0, 1)">:
db:</span><span style="color: rgba(128, 0, 128, 1)">74</span>:<span style="color: rgba(128, 0, 128, 1)">36</span>:<span style="color: rgba(128, 0, 128, 1)">92</span>:c0:<span style="color: rgba(128, 0, 128, 1)">52</span>:<span style="color: rgba(128, 0, 128, 1)">95</span>:a7:<span style="color: rgba(128, 0, 128, 1)">17</span>:c8:f6:f5:ea:<span style="color: rgba(128, 0, 128, 1)">73</span>:ec:<span style="color: rgba(128, 0, 128, 1)">35</span>:1b:<span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">38</span>:3e:b6:<span style="color: rgba(128, 0, 128, 1)">24</span>:<span style="color: rgba(128, 0, 128, 1)">69</span>:f5:<span style="color: rgba(128, 0, 128, 1)">12</span>:8c:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(128, 0, 128, 1)">06</span>:af:<span style="color: rgba(128, 0, 128, 1)">61</span>:aa:<span style="color: rgba(128, 0, 128, 1)">76</span><span style="color: rgba(0, 0, 0, 1)">:2e:6c:ac:6c:
8b:</span><span style="color: rgba(128, 0, 128, 1)">72</span>:<span style="color: rgba(128, 0, 128, 1)">12</span>:9d:1a:c1:8e:<span style="color: rgba(128, 0, 128, 1)">65</span>:b0:cb:<span style="color: rgba(128, 0, 128, 1)">07</span>:<span style="color: rgba(128, 0, 128, 1)">97</span>:2f:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">15</span>:<span style="color: rgba(128, 0, 128, 1)">99</span>:<span style="color: rgba(128, 0, 128, 1)">61</span>:<span style="color: rgba(128, 0, 128, 1)">76</span><span style="color: rgba(0, 0, 0, 1)">:
cd:</span><span style="color: rgba(128, 0, 128, 1)">80</span>:ba:1b:<span style="color: rgba(128, 0, 128, 1)">12</span>:db:e5:c1:8f:ea:cd:ce:<span style="color: rgba(128, 0, 128, 1)">53</span>:<span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">:e7:ad:4c:2b:
</span><span style="color: rgba(128, 0, 128, 1)">81</span>:<span style="color: rgba(128, 0, 128, 1)">43</span>:<span style="color: rgba(128, 0, 128, 1)">89</span>:ab:fa:7e:e9:1e:f1:<span style="color: rgba(128, 0, 128, 1)">49</span>:b4:<span style="color: rgba(128, 0, 128, 1)">87</span>:<span style="color: rgba(128, 0, 128, 1)">20</span>:<span style="color: rgba(128, 0, 128, 1)">31</span>:a9:c6:<span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">:ef:
</span><span style="color: rgba(128, 0, 128, 1)">91</span>:<span style="color: rgba(128, 0, 128, 1)">31</span>:c5:<span style="color: rgba(128, 0, 128, 1)">05</span>:1b:<span style="color: rgba(128, 0, 128, 1)">05</span>:<span style="color: rgba(128, 0, 128, 1)">70</span>:<span style="color: rgba(128, 0, 128, 1)">28</span>:ce:5e:4d:ef:<span style="color: rgba(128, 0, 128, 1)">83</span>:<span style="color: rgba(128, 0, 128, 1)">62</span><span style="color: rgba(0, 0, 0, 1)">:ff:ea:f6:2e:
</span><span style="color: rgba(128, 0, 128, 1)">30</span>:ee:cd:4f:ed:0a:a5:<span style="color: rgba(128, 0, 128, 1)">06</span>:c4:<span style="color: rgba(128, 0, 128, 1)">83</span>:<span style="color: rgba(128, 0, 128, 1)">47</span>:<span style="color: rgba(128, 0, 128, 1)">75</span>:<span style="color: rgba(128, 0, 128, 1)">61</span>:d7:<span style="color: rgba(128, 0, 128, 1)">41</span>:8f:b0:<span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(128, 0, 128, 1)">40</span>:5b:0d:8c:<span style="color: rgba(128, 0, 128, 1)">20</span>:c4:1f:<span style="color: rgba(128, 0, 128, 1)">22</span>:1d:5e:a9:c2:a2:ba:<span style="color: rgba(128, 0, 128, 1)">84</span><span style="color: rgba(0, 0, 0, 1)">:6d:e8:5e:
</span><span style="color: rgba(128, 0, 128, 1)">19</span>:<span style="color: rgba(128, 0, 128, 1)">77</span>:<span style="color: rgba(128, 0, 128, 1)">79</span>:0a:fe:<span style="color: rgba(128, 0, 128, 1)">70</span>:f2:8f:<span style="color: rgba(128, 0, 128, 1)">29</span>:<span style="color: rgba(128, 0, 128, 1)">94</span>:fa:f6:<span style="color: rgba(128, 0, 128, 1)">36</span>:d0:b4:a2:d8:<span style="color: rgba(128, 0, 128, 1)">69</span><span style="color: rgba(0, 0, 0, 1)">:
6f:ab:</span><span style="color: rgba(128, 0, 128, 1)">25</span>:ae:<span style="color: rgba(128, 0, 128, 1)">28</span>:<span style="color: rgba(128, 0, 128, 1)">43</span>:5c:ef:ec:8d:<span style="color: rgba(128, 0, 128, 1)">28</span>:<span style="color: rgba(128, 0, 128, 1)">51</span>:b1:f7:d5:<span style="color: rgba(128, 0, 128, 1)">42</span>:<span style="color: rgba(128, 0, 128, 1)">01</span><span style="color: rgba(0, 0, 0, 1)">:4e:
</span><span style="color: rgba(128, 0, 128, 1)">02</span>:c8:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">65</span>:3c:c4:2c:a9:<span style="color: rgba(128, 0, 128, 1)">65</span>:1e:<span style="color: rgba(128, 0, 128, 1)">65</span>:<span style="color: rgba(128, 0, 128, 1)">86</span>:<span style="color: rgba(128, 0, 128, 1)">94</span>:5a:<span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">:b9:2a:b1:
f7:</span><span style="color: rgba(128, 0, 128, 1)">26</span>:3f:4b:1f:3b:<span style="color: rgba(128, 0, 128, 1)">06</span>:5c:<span style="color: rgba(128, 0, 128, 1)">48</span>:<span style="color: rgba(128, 0, 128, 1)">96</span>:ba:8c:5c:8f:<span style="color: rgba(128, 0, 128, 1)">80</span>:<span style="color: rgba(128, 0, 128, 1)">86</span><span style="color: rgba(0, 0, 0, 1)">:f6:5e:
c7:1d:</span><span style="color: rgba(128, 0, 128, 1)">61</span><span style="color: rgba(0, 0, 0, 1)">:e4
# </pre>
</div>
<p><strong><span style="font-size: 18px">4>.将已经吊销的证书文件拷贝到windows操作系统</span></strong></p>
<div class="cnblogs_code">
<pre># sz crl.pem #下载到windows操作系统后,由于操作系统不识别因此我们得修改文件后缀,如下图所示。
# </pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221153243615-520952212.png"></p>
<div class="cnblogs_code">
<pre> 如下图所示,我们可以查看已经被吊销的证书列表。</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221153320952-1604153221.png"></p>
<p> </p>
<p><span style="color: rgba(255, 0, 255, 1)"><strong><span style="font-size: 14pt">八.验证证书的合法性</span></strong></span></p>
<p><strong><span style="font-size: 18px">1>.验证CA自签名的证书合法性</span></strong></p>
<div class="cnblogs_code">
<pre># tree
.
├── cacert.pem
├── certs
│</span>??<span style="color: rgba(0, 0, 0, 1)"> └── myapp.crt
├── crl
├── crlnumber
├── crlnumber.old
├── crl.pem
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── myapp.csr
├── newcerts
│</span>??<span style="color: rgba(0, 0, 0, 1)"> └── 0F.pem
├── private
│</span>??<span style="color: rgba(0, 0, 0, 1)"> └── cakey.pem
├── serial
└── serial.old
</span><span style="color: rgba(128, 0, 128, 1)">4</span> directories, <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)"> files
#
# openssl verify -CAfile cacert.pem certs/<span style="color: rgba(0, 0, 0, 1)">myapp.crt #很显然,咱们服务器自签名的证书是合法的,输出是"OK"
certs</span>/<span style="color: rgba(0, 0, 0, 1)">myapp.crt: OK
#
# </pre>
</div>
<p><strong><span style="font-size: 18px">2>.验证"*cnblogs.com"证书的合法性</span></strong></p>
<div class="cnblogs_code">
<pre># ll cnblog.crt.cer
</span>-rw-r--r-- <span style="color: rgba(128, 0, 128, 1)">1</span> root root <span style="color: rgba(128, 0, 128, 1)">1424</span> Dec <span style="color: rgba(128, 0, 128, 1)">21</span> <span style="color: rgba(128, 0, 128, 1)">15</span>:<span style="color: rgba(128, 0, 128, 1)">40</span><span style="color: rgba(0, 0, 0, 1)"> cnblog.crt.cer
#
# openssl verify -<span style="color: rgba(0, 0, 0, 1)">CAfile cacert.pem cnblog.crt.cer
unable to load certificate
</span><span style="color: rgba(128, 0, 128, 1)">140288852195216</span>:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:<span style="color: rgba(128, 0, 128, 1)">707</span><span style="color: rgba(0, 0, 0, 1)">:Expecting: TRUSTED CERTIFICATE
#
# </pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/795254/201912/795254-20191221153918340-932453380.png"></p>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
<p>本文来自博客园,作者:尹正杰,转载请注明原文链接:https://www.cnblogs.com/yinzhengjie/p/12075752.html,个人微信: "JasonYin2020"(添加时请备注来源及意图备注,有偿付费) </p>
<p>当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。</p><br><br>
来源:https://www.cnblogs.com/yinzhengjie/p/12075752.html
頁:
[1]