最近略微研究了一下证书,为此借着这个东风,顺带研究一下安卓的证书及其使用。
Android使用的是jks证书,这个在TLS初探(2)证书简介中有介绍,和P12证书类似,实际就是将X509证书和私钥打包成一个文件,并且对该文件加上密钥(称为密钥库口令);不仅如此,还进一步对其中的私钥加上密钥(称为密钥口令)。简单来说,如果你需要提取证书文件就需要密钥库口令,如果你需要提取私钥,不仅需要密钥库口令还需要密钥口令。jks的生成命令如下:
keytool -genkey -alias android.keystore -keyalg RSA -validity 36500 -keystore android.keystore
在生成的过程中,就会让你输入DN信息、密钥库口令和密钥口令,如果还不清楚清楚DN信息的,可以回顾一下我的“TLS初探(2)证书简介”。
证书内容分析
为了分析jks证书,我们简单暴力点,将jks直接转p12之后,通过openssl提取证书和私钥文件。
(1)android证书jks转p12(会要求输入新的配置文件)
keytool -importkeystore -srckeystore androi