通过.jks生成nginx所需要的.crt和.key证书

有时候拿到一个证书压缩包,里面包含着各种格式的证书,有.jks的,就是没有.crt和.key证书。

所以,需要将.jks的证书转换成nginx所需要的.crt和.key证书。

比如有一个abc.com.jks

  1. 查看.jks文件中有哪些内容
    keytool -list -keystore abc.com.jks

  2. 将”.jks”转为”.pkcs12”(PKCS12格式的证书库)
    keytool -importkeystore -srckeystore abc.com.jks -destkeystore abc.com.pkcs12 -deststoretype PKCS12

  3. 提取2张证书
    openssl pkcs12 -in abc.com.pkcs12 -nokeys -clcerts -out abc.com-ssl.crt
    openssl pkcs12 -in abc.com.pkcs12 -nokeys -cacerts -out abc.com-ca.crt

abc.com-ssl.crt是SSL证书,abc.com-ca.crt是中级证书,俩个合并到一起才是nginx服务器所需要的证书,这个非常重要。假如仅用一个,尽管在浏览器中可以使用,但是在程序中调用的时候,假如用了validate ssl功能的话,就会报错。

  1. 合并证书
    cat abc.com-ssl.crt abc.com-ca.crt > abc.com.crt
    此时abc.com.crt是一个完成的证书

  2. 提取私钥
    openssl pkcs12 -nocerts -nodes -in abc.com.pkcs12 -out abc.com.key

至此,.crt和.key证书转换完成。

发表评论

邮箱地址不会被公开。 必填项已用*标注