CA、TLS双向认证

1.名词解释

  • TLS:传输层安全协议 Transport Layer Security的缩写
  • CA 证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。
  • CSR 是Certificate Signing Request的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。
  • CRT 即 certificate的缩写,即证书。公钥、信息和签名。
  • CER 是证书的公钥。
  • JKS 是JAVA的keytools证书工具支持的证书私钥格式。
  • PFX 是微软支持的私钥格式。
  • X.509 是一种证书格式.对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包 含有关用户或设备及其相应公钥的信息。
  • X.509的证书文件,一般以.crt结尾,根据该文件的内容编码格式,可以分为以下二种格式:
  • PEM - Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN…"开头, "-----END…"结尾,内容是BASE64编码.
    Apache和*NIX服务器偏向于使用这种编码格式.
  • DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.
    Java和Windows服务器偏向于使用这种编码格式
  • 摘要 对数据进行Hash运算。
  • 签名 使用私钥对摘要进行加密,得到的密文即被称为该次传输过程的签名。

2.生成双向认证的jks

2.1 通过Keytool生成JKS

生成服务器公私钥对---serverkey.keystore.jks
keytool -genkeypair -alias serverkey -keyalg ec -validity 365 -keystore serverkey.keystore.jks -storepass 1234567 -dname "cn=AA.COM, ou=AA, o=AA Cor, c=CN, l=SZ" -deststoretype pkcs12
生成客户端公私钥对---clientkey.keystore.jks
keytool -genkeypair -alias clientkey -keyalg ec -validity 365 -keystore clientkey.keystore.jks  -storepass 7654321 -dname "cn=BB.COM, ou=BB, o=BB Cor, c=CN, l=SZ" -deststoretype pkcs12

2.2 生成CA密钥对和CA证书

1.生成CA密钥库---ca.keystore.jks
keytool -genkeypair -alias rootca -keyalg ec -validity 3650 -keystore ca.keystore.jks -storepass 22222222 -dname "cn=CA.COM, ou=CA, o=CA Cor, c=CN, l=SZ" -deststoretype pkcs12
2.导出CA证书--rootca : ca.cer
keytool -exportcert -alias rootca -file ca.cer -keystore ca.keystore.jks -storepass 22222222 -deststoretype pkcs12

2.3 生成双向认证服务端JKS

1.生成证书请求文件csr---serverkey.csr
keytool -certreq -alias serverkey -keystore serverkey.keystore.jks -storepass 1234567 -file serverkey.csr -deststoretype pkcs12
2.使用 CA密钥库ca.keystore.jks对serverkey.csr进行签发: ---serverkey.csr->serverkey.cer
keytool -gencert -alias rootca -infile serverkey.csr -outfile serverkey.cer -validity 365 -keystore ca.keystore.jks -storepass 22222222 -deststoretype pkcs12
3.导入CA证书到服务器密钥库:
keytool -import -trustcacerts -alias rootca -file ca.cer -keystore serverkey.keystore.jks -storepass 1234567 -deststoretype pkcs12
4.导入签发证书到服务器密钥库:
keytool -import -trustcacerts -alias serverkey -file serverkey.cer -keystore serverkey.keystore.jks -storepass 1234567 -deststoretype pkcs12

2.4 生成双向认证客户端JKS

1.生成证书请求文件csr---clientkey.csr
keytool -certreq -alias clientkey -keystore clientkey.keystore.jks -storepass 7654321 -file clientkey.csr -deststoretype pkcs12
2.使用 CA密钥库ca.keystore.jks对serverkey.csr进行签发: ---clientkey.csr->clientkey.cer
keytool -gencert -alias rootca -infile clientkey.csr -outfile clientkey.cer -validity 365 -keystore ca.keystore.jks -storepass 22222222 -deststoretype pkcs12
3.导入CA证书到客户端密钥库:
keytool -import -trustcacerts -alias rootca -file ca.cer -keystore clientkey.keystore.jks -storepass 7654321 -deststoretype pkcs12
4.导入签发证书到客户端密钥库:
keytool -import -trustcacerts -alias clientkey -file clientkey.cer -keystore clientkey.keystore.jks -storepass 7654321 -deststoretype pkcs12

2.5 Keytool 常用操作命令

查看当前目录的证书 
keytool -list -v|-rfc|() -keystore serverkey.keystore.jks
查看cer信息
keytool -printcert -file ca.cer

Android与Windows Socket通信,TLS双向认证
什么是CA证书
数字签名是什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值