天天看点

加密、解密、CASSL加密和解密CA(转载)SSL握手机制openssl构建私有CA签发CA证书

加密、解密、CA

  • SSL
    • SSL解释
    • SSL作用
  • 加密和解密
    • 加密方式
      • 数据加密
      • 数字签名
      • 数据完整加密
  • CA(转载)
  • SSL握手机制
  • openssl
    • openssl命令
      • 对称加密(enc命令)
      • 单项加密(dgst)
      • 生成用户密码
      • 生成随机数
      • 生成密钥
  • 构建私有CA
  • 签发CA证书

SSL

SSL解释

SSL(Secure Sockets Layer 安全套接层),为Netscape所研发,是为网络通信提供安全及数据完整性的一种安全协议。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。

SSL作用

在互联网通信中,不使用SSL加密的通信,都存在着潜在的危险。

威胁保密性的攻击:窃听、通信分析
威胁完整性的攻击:更改、伪装、重放、否认
威胁可用性的攻击:拒绝服务(DoS)
           

SSL实现安全保证的目标:

保密性:confidentiality,指通信双方的信息具有保密性,第三方无法查知
完整性:integrity,指通信双方的报文不能产生信息丢失。
可用性:availability,指通信方任何一方加密的信息可以被另一方解密。
           

加密和解密

加密方式

(1)对称加密:加密和解密使用同一个密钥。缺陷:使用者数量多时,密钥派发也会增加

(2)公钥加密:密钥分为公钥和私钥。公钥从私钥中提取,可公开给所有人。私钥则是通过工具创建。只供使用者自己使用。公钥加密的数据只能用已配对的私钥解密,反之亦然

(3)单项加密:提出数据指纹(特征码),只能加密,不能解密。主要用来验证数据的完整

数据加密

如下图:

加密、解密、CASSL加密和解密CA(转载)SSL握手机制openssl构建私有CA签发CA证书

上述加密方式只用了对称加密和公钥加密。这是一种简单的加密方法。对于私钥来说,它不能直接加密到数据上,因为公钥是公共的。任何人都可以得到。所以加密时使用接收方的公钥加密,解密使用接收方的私钥来解密。但是此种方法只能保证数据的安全性,并不能验证数据的完整性、一致性以及数据来源的可靠性

数字签名

数据的安全性得到保证之后,我们还需要验证数据的完整性、一致性以及来源的可靠性

对于数据的完整性和一致性,我们使用单向加密算法,来提取出数据文件的特征码,这个特征码称为“信息摘要(Message Digest)”。是独一无二的。

对于数据的来源,我们可以使用自己的私钥来加密特征码,对方拿公钥来解密,解密成功即可验证数据的来源。这个用私钥加密的特征码就叫做“数字签名(Signature)”

如图:

加密、解密、CASSL加密和解密CA(转载)SSL握手机制openssl构建私有CA签发CA证书

数据完整加密

结合前两种方式的加密方式,我们需将两者方式结合一下,用来来保证数据的完整性、安全性以及可靠性。经常使用的方法是:先进行数字签名,然后对签名加数据进行完整加密。如图:

加密、解密、CASSL加密和解密CA(转载)SSL握手机制openssl构建私有CA签发CA证书

但是这样,其实也不是安全的。如果张三和李四根本不认识,那么张三怎么知道李四给我的公钥一定是李四的呢。同样李四解密时怎么知道公钥就一定时张三的呢。这时就出现了一个组织专门为保证用户身份的一个组织—CA。

CA(转载)

CA(Certificate Authority)是数字证书认证中心,常称为证书颁发机构,申请者提交自己的公钥和一些个人信息(如申请者国家,姓名,单位等)给CA,CA对申请者的这些信息单向加密生成摘要信息,然后使用自己的私钥加密整个摘要信息,这样就得到了CA对申请者的数字签名,在数字签名上再加上CA自己的一些信息(如CA的机构名称,CA层次路径等)以及该证书的信息(如证书有效期限),就得到了所谓的数字证书。

如果某用户信任了该CA,就获取了该CA的公钥(实际上信任CA的其中一个作用就是获取CA公钥),使用该公钥解密数字证书就可以验证申请者的信息以及申请者公钥的可靠性(申请者的公钥只被CA的私钥加密,解密该私钥后只是需要验证可靠性)。

这里的关键是CA使用自己的私钥给申请者加密,那么如何保证CA是可信并且合法的呢?根CA是通过自签署数字证书的方式标榜自己的可信性和合法性,第一级子CA由根CA颁发合法数字证书,第二级直至所有的子CA都由上一级子CA颁发数字证书。对于多级子CA只需要信任根CA即可,因为获取了根CA的公钥,可以解密第一级子CA的证书并获取验证第一级子CA的公钥,层层递进,最终获取到为申请者颁发数字证书的机构并获取它的公钥。

另一种情况,虽然信任了根CA,但如果根CA授权的某个二级或者某个二级授权的三级CA不在信任列表中,就需要将这个中间的CA补齐,否则中间出现断层,无法成功解密该中间CA颁发的证书。通常这种中间CA的证书称为chain证书,例如"xxx.com.chain.crt"。如果购买的证书发给你的文件中包含了chain.crt文件,则说明他是中间CA,且有些浏览器或操作系统中没有内置它的CA,这时应该将chain证书也配置到web server上。

正是这些根CA和子CA组成了PKI。

信任CA后,每次接收到需要解密的数字证书时,还要去该颁发机构指定网站的证书吊销列表(CRL)中查询该证书是否被吊销,对于吊销后的证书应该不予以信任,这是信任CA的第二个作用。导致证书被吊销的可能性不少,例如申请者的私钥被黑客获取,申请者申请吊销等。

也有公司使用自签的证书,例如某些银行、12306有时候就要求下载证书并安装。使用自签证书的好处当然是省钱、方便啦。

SSL握手机制

加密、解密、CASSL加密和解密CA(转载)SSL握手机制openssl构建私有CA签发CA证书

SSL握手协议:

  • (1)客户端向服务器端发送“hello”信息,此信息包括以下:
    • 支持的协议版本,比如tls 1.2
    • 客户端生成一个随机数,稍后用于生成“会话密钥”
    • 支持的加密算法,例如AES,RSA…
    • 支持的压缩算法,用于后续的信息压缩传输;
  • (2) 服务器端向客户端发送“hello”信息,此信息包括以下:
    • 确认双方通信使用的加密协议版本
    • 服务器端生成一个随机数,稍后用于生成“会话密钥”
    • 确认使用加密算法
    • 服务器证书
  • (3) 证书校验
    • 验证服务器证书,在确认无误后取出其公钥(验证证书的完整性、有效性、是否吊销等等)
    • 产生一个随机数(称为预备主密钥Pre-master secret),用服务器的公钥来加密该随机数
    • 告知服务器编码变更,表示随后的信息都是用双方协商的加密方法和密钥发送
  • (4)服务器接收
    • 服务器接收到客户端发来的三个随机数之后,计算生成本次会话所用到的“会话密钥”
    • 告知客户端密码变更,表示随后的信息都是用双方协商的加密方法和密钥发送

openssl

ssl协议开源的实现就是openssl,它是一个开源的项目,有以下三个组成:

  • libencrypto库:加密解密库,主要用来实现加密解密
  • libssl库:ssl功能库,用于ssl安全机制通信的库
    • 上述两种多适用于开发人员
  • openssl多用途命令行工具:可以完成上述的两种功能

openssl命令

openssl拥有众多子命令,分为三类:

  • 标准命令
  • 消息摘要命令
  • 加密命令

对称加密(enc命令)

对称加密使用enc命令:

语法:openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64]  [-S salt] [-salt]

选项解释:
   -in filename :输入的文件,不指认时默认是stdin
   -out filename:输出文件,不指定时默认是stdout
   -pass arg:传递加、解密时的明文密码。若验证签名时实用的公钥或私钥文件是被加密过的,则需要传递密码来解密。
   -e:对输入的文件进行加密。默认就是加密
   -d:对输入文件的解密操作,必须显式指定-d才能解密
   -a:在加密后和解密前进行base64编码或解密,不指定时默认是二进制。注意,编码不是加解密的一部分,而是加解密前后对数据的格式"整理"
   -S salt:不使用salt随机数值,而是自定义salt值,但只能是16进制范围内字符的组合,即"0-9a-fA-F"的任意一个或多个组合
   -salt:自动插入一个随机数来为数据加密
           

示例:

#加密:
[[email protected] ~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.test
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:

[[email protected] ~]# cat fstab.test 
U2FsdGVkX19aLr3QB5kyqt3vOiveODKRznCto6pgUBgeGw5duVEGc2iDzU0raht7
MGSKSMSlp0zviBWnOjiXV4SBNbd/IEBLQ9K4gPyc6+gG2DHpAuLiOuhpv73bv686
6mkuDR09FdNv3pb3YUPO4hUEWRbT0N3Yy4qjxskKUiNOkfvJJGmtiYqtb6UlWnCk
4dF9OOQesS5PshepUBD5Tq0dwPx9rT6A9fGR3MbEMrKyvoI4nxn5VbL3+RZdJIls
TkmThKPqACrq7TDxgFHK5npwx+motCEvPd3hx1bVK/SbUcaQNRxhl2ONwvmHnRSF
rraahASWwQJ/gZIDXLNExbjkay1TJCo4zKbpr28mbMWs9zqZhRav+zLDV/qo4SQD
Qxl0HOeCHkB1Mb9Kh8YoJSWQ2oTI713mvlqUcOHMDwNze/4f8QWFaZoiTCISCP00
EE4JNpUJ+O0Zxpie1Wh2Lt99EKmvou4Ox7XRCgxvvYk/dn8dERflh9+xcj6Bf8qz
McpYFRp170BGvLFhcxqHwcFgcVbNKpVOmlFBNBleRT2cy0PCrmOsGqmp1blHKmly
PbttJyBUox2QiYw7VmjBp/cQEPCgmMFzdmIyAh1rjREQeZMQ5Tu8nrJ6IDnvnyHd
CVHK+sLKHSodxQtkGI3PA5QZfigyiApzFRV8qRJHdbFL0mRJ0uGbzKDjX4XYmjDb
tG2RgGAPRia2a2lqHb4C6pCo1Ay08kyV/0tz051Cm6pVUT5xncSbS/6qfHKzsBSm
ekYHs2XDu5jJzvQNG1ixLrkgfZQSRZ/7XgNTldM9d8I6SBH+v0mA6ZyM9YnNZkiE
5otx5hZ8W+5DQCKwzTmPMiggSxubXxDJVlD162zQpRU=

#解密:
[[email protected] ~]# openssl enc -d -des3 -a -salt -out fstab -in fstab.test 
enter des-ede3-cbc decryption password:


           

单项加密(dgst)

单项加密使用dgst命令,用法如下:

openssl dgst [-md5|-sha1|...] [-hex | -binary] [-out filename] [-sign filename] [-passin arg] [-verify filename] [-prverify filename] [-signature filename] [file...]
常用选项:
 -out filename:指定输出文件,若不指定则输出到标准输出
 [-md5|-sha1|-sha|-sha224|-sha256|-sha384|-sha512] :指定一种加密算法
           

示例:

[[email protected] ~]# openssl dgst -md5 fstab
MD5(fstab)= 898ad95c3ba4f33b8711294fb8e9e567

[[email protected] ~]# openssl dgst -sha224 fstab
SHA224(fstab)= 7a2bb5f037a8f72969e229a99f603e181621fc737d392ee5c9ca132c

[[email protected] ~]# openssl dgst -sha512 fstab
SHA512(fstab)= 2acc73b2d17311a7447c9f89bb3009f85daf3675897800ed2916856e04dc40b0a441d84b0547b73ee59dbe147928db03d8c10c415c9d815d7823d07ab3d9451b

           

生成用户密码

用法如下:

openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}
 常用选项:
 	-crypt:UNIX标准加密算法,此为默认算法。如果加盐(-salt)算密码,只取盐的前2位,2位后面的所有字符都忽略。
 	-1(数字):基于MD5的算法代号
 	-salt:加入随机数,最多只能有8位
 	in file:从文件中读取要计算的密码列表
           

示例:

[[email protected] ~]# openssl passwd -1 -salt 1234 
Password:                      #此处输入密码
$1$1234$8anOOnKezp8tgVOI5G0gb/         #显示已经加密过的密码

           

生成随机数

用法:

openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num

常用选项:
		-hex:指定生成的随机数的编码格式为hex。
		num:指定随机数的长度。
		-base64:指定生成的随机数的编码格式为base64。
           

示例:

[[email protected] ~]# openssl rand -hex 10
2f1e8cb703bd7d6b7e4c

           

生成密钥

genrsa命令生成私钥,然后在使用rsa命令从私钥中提取出公钥。

用法:

openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [numbits]

常用选项:

-out filename     :将生成的私钥保存至filename文件,若未指定输出文件,则为标准输出。

numbits            :指定要生成的私钥的长度,默认为1024。该项必须为命令行的最后一项参数。

-des|-des3|-idea:指定加密私钥文件用的算法,这样每次使用私钥文件都将输入密码,太麻烦所以很少使用。

-passout args    :加密私钥文件时,传递密码的格式,如果要加密私钥文件时单未指定该项,则提示输入密码。
           

示例:

#注意:私钥一定是别人不能写的,只能自己有写操作。
[[email protected] ~]# (umask 077;openssl genrsa -out fstab -des3  2048)

[[email protected] ~]# cat fstab
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,EC06E3589D14D346

zmNV9Txe+gcky01cFqB/24df1vdHIVJGALFX4v6G/LS52NekGMHaTIJzfYvTgdRX
KoIiA0bpLg5OOvPLV6GoFPecJd6Yt9M6CMOl3fT7Gozz6/hdF0vye6Rn9b8c2LyH
l4ReHmD4QE1VjDSXPySYcb3ybBdrMhueb1wAjKH7NPyyTv+LMic1gNHRafRsxuYD
C+/v22YUka/909kt99QiZK0/Z4UPNzSnIp4pIwVlZsXTFWcHDKOi/7wNlSYcYaNY
l+/Ayey0a4B775MjjWdYqCWnOv2hLUIWN2gJe8cKJqHvI58nLj1/JHuYwC4+fRsh
H2pCXJbfi0tzOyKx7QIuxcw3zYxkb8lywy+pqWK4yvGYW2fbRqjLi/p54aYigrmy
wNw79gDUDi2d5UUfjkn53n3OxkOcxLfN/yW5sOeA+EaQ9RKJzBlM8mqr5D32+cpY
EAuQ4IW45LeSIyOPSOnNo2WyK1zzzhnOxpDCWZFcAUCgF1fcI6m+fhdNULd1dOSq
RJotUsrW+CseXSd1rSRp5IVSwnA8bLbi4HreELQqYAGDzkk8KqqSsROgSiSpPFo7
c52Mu2iaqs5euWc8qa315YhC4b0VXHvSHnzKvOIJjxmE/meEwprIutPRGk5McdKL
zGAMK4T7L0VJzdFIEBVefkJMp8iX3PdLKvkqk6ddvfjVnOGPkwmXtr5cd/4u+JQf
qXghQsOnbRBT7HMFbnQHJn7e4ntbptxIOHh+tFAKAOnv92fp43IbEqTxeZLHMhQj
Tf1nW3MTioKHIbnARbbzEipjeP8ro4bl4Xn5/MYO53nVGmc/jV5ANKIOFDqViAfd
14cTgTzW8XX0GjhZwaxdbtFEi2fdlO7mRWjkAzq4d6ltXDAiw3yZMPs9KD23D1jg
O+u9ei2KrUTiDYbxtGcP5bT+hruY5Kj2cgiSaJWFyZTkZhWLE0CFTt5ln6nHUZ/i
ZPou2Sk3vqRKOQzQGVjjhetYOXrdHFyKk17TCORrssaqGHZmdiYanKI8aRQI66QD
02X+nfJSMxwuTj5DAYy5KltvhgAzduWvhoer8dT0ueEtRt1sW71QpFqPSEw2Xa0H
DPendxfNg8dAdBFsX+tslzaD8bcJZFBPV8wMD1kqvfxDagLcI5Dnft0p8fSjzxnK
tXzSwo2fPJodFpi4RpUUPNhh7+uRtPDNEF82MhXTJ0d4RC2R9UK3vbDMdQMmqBzs
rb06InAKdCGvK7vv3t4NS6lZ5mmIO7uUwWcTr8D+VxUp4M7DaX86BJEM1cRRPPM1
olOTHo1EypRCjNoyO7ykK/VpHSoitAtWeDU4kvmtnktnKKDAGvATzK6FARw/Z0xC
TFaP8JjsKN+h2h2Uf3qtj1LgI8xNDGIo+R6sDPlJcE+r2vmcCWMMl8bkPgW5Ahg0
pxNZeX2jd8FB9K2XmgqIMZ4vKcCmGluMmpt0nPCB20op7I8DGFSGALBy18wxqG7Y
VITycZVMmmpJ2iypNhoOWxb50c/oo7VcKz3mcZzsTQ6XYwhvQOWuv3aGYhPz3Mcj
x7eOUJ3yWwJAUzb9uhAl4QY1Mb1oZff5GmL9bnMNloPHc3IAl/cyF8TaWOVq5oYy
-----END RSA PRIVATE KEY-----


           

rsa命令:用于从私钥中提取公钥

语法格式:

openssl rsa [-in filename] [-passin arg] [-passout arg] [-out filename] [-des|-des3|-idea] [-text] [-noout] [-pubin] [-pubout] [-check]

常用选项:

-in filename:指定密钥输入文件。默认读取的是私钥,若指定"-pubin"选项将表示读取公钥。将从该文件读取密钥,不指定时将从stdin读取
-out filename:指定密钥输出文件。默认输出私钥,若指定"-pubin"或"-pubout"选项都将输出公钥。不指定将输出到stdout。
-pubout:指定该选项时,将显示表明从"-in filename"的filename中提取公钥并输出,所以filename文件必须是私钥文件。
       :不指定该选项时,默认输出私钥。当设置了"-pubin"时,默认也设置了"-pubout"。
        :私钥文件可以通过文件中的私钥标识符"-----BEGIN PRIVATE KEY-----"和"-----END PRIVATE KEY-----"来辨别。
           

提取公钥:

[[email protected] ~]# openssl rsa -in fstab -pubout
Enter pass phrase for fstab:
writing RSA key
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAts+ISWU/N2X7s6yxsc++
6KU2UoosFzHnwW8Cc8rYza/RfRf/DVcX/ozqqyBIRI0hG7acb5zPA65nlCORUG8a
GCCDO9WmbDK3MwqaK37ge8ZfQz3wlq8Wi5p2giYw2PxaPmudQXduYjMgCdv1sZVZ
xzO2qko/aP6Jug4ophBVqvcV8xu5jAtbOpKecdkY9sT6Zd+0rt0VmtDLrLHW12km
OPMZoNp2MszjQyIGaqcCBvuLUGxIqZa7xx0frh7pwNH7fW460aNA4ceF2G+rEoIj
P/C8EZGivwYBOCOEkHqI092Dtdd0StB758F1cXG1PBSMIZI1wu8bdJ2XgmQSTL3e
swIDAQAB
-----END PUBLIC KEY-----

           

构建私有CA

配置文件:

/etc/pki/tls/openssl.cnf

该文件主要设置了证书请求、签名、crl相关的配置。主要相关的伪命令为ca和req。对于x509不用该配置文件。

该文件从功能结构上分为4个段落:默认段、ca相关的段、req相关的段、tsa相关的段。每个段中都以name=value的格式定义。

该文件中没有被引用的段被视为忽略段,不会起到任何作用。

每个段中可以书写哪些name以及它们的意义,可以man相关命令,如man ca可以查看ca相关段可以书写的name,man req可以查看req相关段可以书写的name。
           

具体每项内容可以查看:https://www.cnblogs.com/f-ck-need-u/p/6091027.html

首先确定在配置为CA的服务器上生成一个自签证书,并为CA提供所需的目录和文件即可

步骤:

  • (1)生成私钥(因为公钥都是从私钥提取):
    [[email protected] CA]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
    Generating RSA private key, 4096 bit long modulus
      ..........................................................................++
      ..........++
      e is 65537 (0x10001)
      #注意:生成密钥必须跟/etc/pki/tls/openssl.cnf中[CA_default]字段中的private_key路径一致。如需更改修改配置文件即可
               
  • (2)生成自签证书
[[email protected] CA]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN                    #国家代码,两个字符
State or Province Name (full name) []:BeiJing           #城市
Locality Name (eg, city) [Default City]:BeiJing         #省会
Organization Name (eg, company) [Default Company Ltd]:  #公司名称  
Organizational Unit Name (eg, section) []:ops           # 部门
Common Name (eg, your name or your server's hostname) []:ca.ydong.com   #名字,可以是CA持有者的名字、主机的名字。  这里使用的是主机的名称
Email Address []:[email protected]      #邮件地址

           
  • (3)为CA创建所需要的目录及文件

    目录为

    /etc/pki/CA/{certs,crl,newcerts}

    • certs

      :存放签好的证书
    • crl

      :吊销证书列表
    • newcerts

      :放签证的序列号

创建所需要的文件:`/etc/pki/CA/{serial,index.txt}

  • index.txt

    :数据索引文件,可以为空
  • serial

    :当前序列号,必须写入数据,且为字符串的数字
[[email protected] CA]# touch /etc/pki/CA/{serial,indx.text}
[[email protected] CA]# echo 01 > serial

           

签发CA证书

如果要用到证书进行安全通信的服务器,就需要向CA请求签署证书(以httpd为例)

  • (1)用到证书的主机生成密钥:
[[email protected] httpd]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
Generating RSA private key, 2048 bit long modulus
...............+++
...............................................+++
e is 65537 (0x10001)

           
  • (2)生成证书签署请求
[[email protected] httpd]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN         
State or Province Name (full name) []:BeiJing  
Locality Name (eg, city) [Default City]:BeiJing   
Organization Name (eg, company) [Default Company Ltd]:
#前几项一定要跟CA服务器上的一样,要不然容易签署不通过,针对私有CA来说
Organizational Unit Name (eg, section) []:ops
Common Name (eg, your name or your server's hostname) []:ca3.ydong.com  
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:        #输入密码,因为是测试所以不用填写
An optional company name []:

           
  • (3)将申请发送过CA主机上
[[email protected] httpd]# scp /etc/httpd/ssl/httpd.csr [email protected]:/tmp/
The authenticity of host '192.168.199.119 (192.168.199.119)' can't be established.
ECDSA key fingerprint is SHA256:eJ/j/dh/UJRuhTFuMg4P8ivUge4TMZ905TvucyeERgo.
ECDSA key fingerprint is MD5:0d:49:46:c9:ec:e9:34:7f:4d:f2:da:b4:4d:69:cd:4b.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes   
Warning: Permanently added '192.168.199.119' (ECDSA) to the list of known hosts.
[email protected]'s password: 
httpd.csr                                                                                                     100% 1066   148.8KB/s   00:00    
           
  • (4)在CA主机上签署申请
[[email protected] ~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: Apr 29 06:00:59 2019 GMT
            Not After : Apr 28 06:00:59 2020 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = BeiJing
            organizationName          = Default Company Ltd
            organizationalUnitName    = ops
            commonName                = ca3.ydong.com
            emailAddress              = [email protected]
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                6B:5B:56:02:B8:92:C4:EA:14:85:A1:67:AB:9B:20:17:EE:60:F3:95
            X509v3 Authority Key Identifier: 
                keyid:36:A9:A5:6B:9D:8B:D6:AF:7D:6A:CE:7B:59:E0:4A:11:13:11:23:54

Certificate is to be certified until Apr 28 06:00:59 2020 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

           
  • (5)查看CA证书
[[email protected] ~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -subject -serial
subject= /C=CN/ST=BeiJing/O=Default Company Ltd/OU=ops/CN=ca3.ydong.com/[email protected]
serial=02