我拥有以下内容,并正在尝试创建要在 Apache Tomcat 服务器上使用的 SSL 证书。通常我会使用 keytool 生成证书请求。但是,在这种情况下,请求/响应对是由其他人预先生成的。对于使用以下 3 条数据来实现此目的,有什么工具和/或方法的建议吗?
谢谢!
-----开始证书----- MIIFnzCCBIegAwIBAgIRAKAhdt0HU4a0O4MarQ4DGZMwDQYJKoZIhvcNAQEFBQAw ...... -----结束证书-----
-----开始证书请求----- MIIB5jCCAU8CAQAwgaUxCzAJBgNVBAYTAkNBMQ8wDQYDVQQIEwZRdWViZWMxETAP ...... -----结束证书请求-----
-----开始 RSA 私钥----- MIICXgIBAAKBgQDLfVeHiO1dCPpQYQI3X1gCVnMStitrdu7OI6iY23NowBBcwbCZ .... -----结束 RSA 私钥-----
答案1
我们使用这个 Javahttp://www.comu.de/docs/tomcat_ssl/comu/ImportKey.java和类似的东西。从将三个示例放在单独的文件中开始,以 .crt、.csr 和 .key 作为扩展名。
CSRFILE="$1" # the certificate request file
BASE="${CSRFILE%.csr}"
CRTFILE="$BASE.crt" # the certificate file
CRTDER="$CRTFILE.der"
KEYFILE="$BASE.key" # the private key file
KEYPKCS="$KEYFILE.pkcs8"
KEYSTORE="$BASE.keystore"
openssl x509 -in $CRTFILE -out $CRTDER -outform der
openssl pkcs8 -in $KEYFILE -out $KEYPKCS -topk8 -nocrypt -outform der
java -Dkeystore="$KEYSTORE" comu.ImportKey $KEYPKCS $CRTDER tomcat
keytool -storepasswd -new changeit -storepass "" -keystore $KEYSTORE
keytool -keypasswd -keystore $KEYSTORE -keypass "" -new changeit -storepass changeit -alias tomcat
BLAH=foo 的内容块将所有内容放入变量中。前两个 openssl 命令将证书和密钥转换为 Java 内容喜欢的二进制格式。java 命令创建一个 java/tomcat 友好的密钥库,两个 keytool 命令以 tomcat 似乎喜欢的开箱即用方式设置密码。