keytool和openssl生成tomcat可用的https证书笔记

2018/08/10 note 共 1545 字,约 5 分钟

keytool方式

参考文章:

生成过程示例(不能给tomcat使用)

  1. 生成ca keystore
    keytool -genkeypair -alias hbcxca -keyalg RSA -keysize 2048 -keystore C:\Users\ligl01\Desktop\ssl\hbcxca.jks -dname "CN=hbcxca, OU=hbcxca, O=hbcx, L=bj, ST=bj, C=CN" -validity 3650 -keypass 123456 -storepass 123456  
    
  2. 导出ca crt证书
    keytool -export -file C:\Users\ligl01\Desktop\ssl\hbcxca.crt -alias hbcxca -keystore C:\Users\ligl01\Desktop\ssl\hbcxca.jks -storepass 123456  
    
  3. 生成server keystore
    ```console
    keytool -genkeypair -alias hblpa -keyalg RSA -keysize 2048 -keystore C:\Users\ligl01\Desktop\ssl\server.jks -dname “CN=hblpa, OU=hbcx, O=hbcx, L=bj, ST=bj, C=CN” -validity 3650 -keypass 123456 -storepass 123456
  4. 生成server证书签名请求文件csr
    keytool -certreq -alias hblpa -file C:\Users\ligl01\Desktop\ssl\server.csr -keystore C:\Users\ligl01\Desktop\ssl\server.jks -keypass 123456 -storepass 123456  
    
  5. 使用ca签名csr文件
    keytool -gencert -alias hbcxca -keystore C:\Users\ligl01\Desktop\ssl\hbcxca.jks -infile C:\Users\ligl01\Desktop\ssl\server.csr -outfile C:\Users\ligl01\Desktop\ssl\server.cer -validity 3650 -storepass 123456  
    
  6. 生成的文件目录如下:
    hbcxca.crt // ca根证证书  
    hbcxca.jks // ca密钥对  
    server.cer // ca对server签名的证书  
    server.csr // server的请求签名文件  
    server.jks // server的密钥对  
    

keytoo的缺陷

keytool不能将上面流程中的server.cerserver.jks文件合成一个p12格式的文件提供给tomcat使用,需要借助openssl实现。所以上面的流程执行完成之后,并不能直接给tomcat使用。
如果想通过keytool的方式签证,需要用取巧的方式:就是server对server自己签证,这样直接将server.jks放到tomcat中,将server.jks导出的公钥证书作为ca根证使用,变通的实现功能。可以参照参考文章2中的做法,单向认证、双向认证都可以实现。

openssl实现过程

参考文章:

生成过程

根据参考文章中的过程即可生成CA的密钥对ca.key、CA的证书ca.crt、server的密钥对server.key、server的签名证书server.crt、server的p12格式证书server.p12。
可以看到,openssl比keytool支持的功能要多一点。

文档信息

Search

    Table of Contents