自建CA、CA给客户端签发证书的批处理

在学习OpenSSL的过程中经常需要建立CA,再用此CA给客户签发证书,这个过程总是反复进行,让人不胜其烦。

所以写下了这个文档把以上过程自动化,注意有些命令行很长,看起来是多行,所以不要单行复制,而是从头至尾复制全部代码,然后粘贴到Windows命令行窗口执行即可(注意倒数第一行代码的最后要有回车),或者也可保存为批处理。

本实验的场景是建立CA,并由CA给主机HOST1和HOST2签发证书

本代码首先在D盘建立了三个目录:CA,HOST1和HOST2

CA下存放了四个文件:CA的根证书、私钥、公钥、序列号文件(记录上次签发的最后一张证书的序列号,每次加1);

HOST1下存放了六个文件:HOST1的证书、私钥、公钥,请求文件,以及CA根证书和CA的公钥;

HOST2下存放了六个文件:HOST2的证书、私钥、公钥,请求文件,以及CA根证书和CA的公钥;

把openssl.exe所在文件夹(默认是C:\Program Files\OpenSSL-Win64\bin)加入PATH环境变量,就可以在任何位置执行代码,每次执行都会先清空上述三个目录,然后再生成新的文件。


md d:\host1&md d:\host2&md d:\ca&del/q d:\host2\*.*&del/q d:\host1\*.*&del/q d:\ca\*.*&d:&cd\ca

openssl req -x509 -newkey rsa:8192 -keyout ca.key -out ca.cer -days 3650 -subj /C=CN/ST=jiangsu/L=nanjing/O=Tiger/OU=T-CA/CN=CA/[email protected] -passout pass:abcd

openssl rsa -in ca.key -pubout -out ca.pub -passin pass:abcd

copy ca.pub d:\host1&copy ca.cer d:\host1&copy ca.pub d:\host2&copy ca.cer d:\host2

openssl req -newkey rsa:8192 -keyout host1.key -out host1.csr -subj /CN=host1 -nodes

openssl req -newkey rsa:8192 -keyout host2.key -out host2.csr -subj /CN=host2 -nodes

openssl x509 -req -in host1.csr -out host1.cer -CA ca.cer -CAkey ca.key -CAcreateserial -passin pass:abcd

openssl x509 -req -in host2.csr -out host2.cer -CA ca.cer -CAkey ca.key -CAcreateserial -passin pass:abcd

openssl rsa -in host1.key -pubout -out host1.pub -passin pass:abcd

openssl rsa -in host2.key -pubout -out host2.pub -passin pass:abcd

move host1.* d:\host1

move host2.* d:\host2




猜你喜欢

转载自blog.51cto.com/9843231/2453092