dir=./demoCA # Where everything is kept
修改为 dir=/home/democa # Where everything is kept
终端操作:
#mkdir -p /home/democa/{private,newcerts}
#touch /home/democa/index.txt
#openssl genrsa -des3 -out /home/democa/private/cakey.pem 2048
参数解释:
genrsa
用于生成 RSA 密钥对的 OpenSSL 命令。
-des3
使用 3-DES 对称加密算法加密密钥对,该参数需要用户在密钥生成过程中输入一个口令用于加密。今后使用该密钥对时,需要输入相应的口令。如果不加该选项,则不对密钥进行加密。
-out /home/democa/private/cakey.pem
令生成的密钥对保存到文件 ./demoCA/private/cakey.pem 。
2048
为了获取一个 CA 根证书,我们需要先制作一份证书请求。先前生成的 CA 密钥对被用于对证书请求签名。
#openssl req -new -days 365 -key /home/democa/private/cakey.pem -out careq.pem
参数解释:
req
用于生成证书请求的 OpenSSL 命令。
-new
生成一个新的证书请求。该参数将令 OpenSSL 在证书请求生成过程中要求用户填写一些相应的字段。
-days 365
从生成之时算起,证书时效为 365 天。
-key /home/democa/private/cakey.pem
指定 /home/democa/private/cakey.pem 为证书所使用的密钥对文件。
-out careq.pem
在实际应用中,用户可以通过向知名 CA 递交证书请求来申请证书。但是在这里,我们需要建立的是一个根 CA ,只能由我们自己来对证书请求进行签名。所以我们让 OpenSSL 使用证书请求中附带的密钥对对该请求进行签名,也就是所谓的“ self sign ”
#openssl ca -selfsign -in careq.pem -out /home/democa/cacert.pem
参数说明:
ca
用于执行 CA 相关操作的 OpenSSL 命令。
-selfsign
使用对证书请求进行签名的密钥对来签发证书。
-in careq.pem
指定 careq.pem 为证书请求文件。
-out /home/democa/cacert.pem
以上两个步骤可以合二为一。利用 ca 命令的 -x509 参数,通过以下命令同时完成证书请求生成和签名从而生成 CA 根证书
#openssl req -new -x509 -days 365 -key /home/democa/private/cakey.pem -out /home/democa/cacert.pem
参数说明:
req
用于生成证书请求的 OpenSSL 命令。
-new
生成一个新的证书请求。该参数将令 OpenSSL 在证书请求生成过程中要求用户填写一些相应的字段。
-x509
生成一份 X.509 证书。
-days 365
从生成之时算起,证书时效为 365 天。
-key ./demoCA/private/cakey.pem
指定 cakey.pem 为证书所使用的密钥对文件。
-out ./demoCA/cacert.pem
令生成的证书保存到文件 ./demoCA/cacert.pem 。
注:如果在 CA 建立过程中跳过证书请求生成的步骤,则不会产生 careq.pem 文件。
参照 CA 的 RSA 密钥对生成过程,使用如下命令生成新的密钥对
#openssl genrsa -des3 -out userkey.pem
参数解释:
genrsa
用于生成RSA密钥对的openssl命令
-des3
使用 3-DES 对称加密算法加密密钥对,该参数需要用户在密钥生成过程中输入一个口令用于加密。今后使用该密钥对时,需要输入相应的口令。如果不加该选项,则不对密钥进行加密。
-out
#openssl req -new -days 365 -key userkey.pem -out userreq.pem
参数解释:
req
用于生成证书请求的 OpenSSL 命令。
-new
生成一个新的证书请求。该参数将令 OpenSSL 在证书请求生成过程中要求用户填写一些相应的字段。
-days 365
从生成之时算起,证书时效为 365 天。
-key userkey.pem
指定 userkey.pem 为证书所使用的密钥对文件。
-out userreq.pem
现在,我们可以用先前建立的 CA 来对用户的证书请求进行签名来为用户签发证书了。
#openssl ca -in userreq.pem -out usercert.pem
参数解释:
ca
用于执行 CA 相关操作的 OpenSSL 命令。
-in userreq.pem
指定用户证书请求文件为 userreq.pem 。
-out usercert.pem
指定输出的用户证书文件为 usercert.pem 。
联系客服