1.CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。 2.CA的作用是检查证书持有者身份的合法性,并签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理。
1.首先随意创建一个文件夹 2.在当前文件夹下输入命令:openssl genrsa -out ca.key 2048
(参数说明): 1.genrsa:生成rsa秘钥; 2.out ca.key 生成的秘钥文件为ca.key; 3.2048: 秘钥长度为2048.
3.用CA私钥生成CA的证书,输入命令openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/C=CN/ST=YUNNAN/L=YUNNAN/O=LOK/OU=LOK 这一步可以用openssl req -new -x509 -days 36500 -key ca.key -out ca.crt(之后会需要在提示之下输入许多信息,包括国家代码,省份,城市,公司机构名等) (-x509选项会生成自签名证书。)
1.生成server端的key
openssl genrsa -out server.key 20482.使用key生成server端证书请求文件
openssl req -new -key server.key -out server.csr(与之前不用的是这里没有-x509选项则生成证书请求文件。) 3.使用server证书请求文件通过CA生成自签名证书
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key执行这里的时候可能会出现错误,网上也有相应的解决办法,这里我们用
mkdir -p ./demoCA/newcerts //当前路径下创建这两个文件夹 touch ./demoCA/index.txt //创建index.txt文件 touch ./demoCA/serial //创建serial文件 echo '01' > ./demoCA/serial //在serial文件中写入“01”进行解决。
与之前服务器步骤相同 1.首先生成key
openssl genrsa -out client.key 20482.使用key生成client端证书请求文件 openssl req -new -key client.key -out client.csr
3.使用client证书请求文件生成自签名证书
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.keyA。单向认证 打开窗口1服务器端输入:
openssl s_server -accept 10001 -key server.key -cert server.crt结果:
Enter pass phrase for 1.key: Using default temp DH parameters ......打开窗口2客户端 输入:
openssl s_client -connect localhost:10001结果:
Enter pass phrase for 2.key: CONNECTED(00000003) depth=1 C = CN, ST = YJN, L = YN, O = YN, OU = YN ... ...这时出现窗口来进行双方的传输。
B双向认证 1.服务器窗口1发送:(带有Verify参数,强制要求client证书)
openssl s_server -accept 10001 -key server.key -cert server.crt -Verify 1输出:
verify depth is 1, must return a certificate Enter pass phrase for server.key: Using default temp DH parameters ......2.客户端窗口2发送:
openssl s_client -connect localhost:10001 -cert client.crt -key client.key输出:
Enter pass phrase for client.key: CONNECTED(00000003) .....若验证成功则可以在窗口发现信息.