我正在运行一个使用Apache Tomcat的应用程序,我正在寻找一种自动化的方法来从头开始重新创建Java Key Store(JKS)。该应用程序正在使用类似的配置

server.xml

...
    <Service name="Webservice">


        <Connector port="8080" protocol="HTTP/1.1"
                   maxThreads="150" scheme="http"
                   connectionTimeout="20000"
                   enableLookups="false" redirectPort="8443"/>

        <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true" connectionTimeout="20000"
                   keyAlias="webservice" keystoreFile="/opt/webservice/webservice.jks" keystorePass="Passw0rd!"
                   clientAuth="false" sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1.2"/>
...


即如果证书过期或权限正在更改,如何在脚本中从头开始重新创建完整的密钥库?
需要采取哪些步骤?

这必须包括为服务以及CSR生成私钥的步骤。

最佳答案

经过一些研究和测试,我发现了以下方法:

产生企业社会责任

WEBSERVICE="webservice"
PASSWORD='Passw0rd!'

openssl genrsa -out ${WEBSERVICE}.key 2048 creates=${WEBSERVICE}.key
openssl req -new -out ${WEBSERVICE}.csr -key ${WEBSERVICE}.key -config ${WEBSERVICE}.conf


使用CSR向PKI请求CER,然后继续进行。

生成JKS

openssl pkcs12 -export \
               -in ${WEBSERVICE}.cer -inkey ${WEBSERVICE}.key \
               -out ${WEBSERVICE}.p12 -name ${WEBSERVICE} \
               -password pass:${PASSWORD}

keytool -importkeystore \
        -srckeystore ${WEBSERVICE}.p12 -srcstoretype pkcs12 -srcalias ${WEBSERVICE} \
        -srcstorepass ${PASSWORD} \
        -destkeystore ${WEBSERVICE}.jks -deststoretype jks -destalias ${WEBSERVICE} \
        -deststorepass ${PASSWORD}


最后包括来自PKI的连锁店。

信任证书链

keytool -import -trustcacerts \
        -alias issuer -file issuer.pem \
        -keystore ${WEBSERVICE}.jks -storepass ${PASSWORD}
keytool -import -trustcacerts \
        -alias intermediate -file intermediate.pem \
        -keystore ${WEBSERVICE}.jks -storepass ${PASSWORD}
keytool -import -trustcacerts \
        -alias root -file root.pem \
        -keystore ${WEBSERVICE}.jks -storepass ${PASSWORD}


最后得到一个新创建的webservice.jks文件。

复制到/opt/webservice/webservice.jks并重新启动Web服务之后,新证书就位。

关于java - 从头开始重新创建Java keystore (JKS),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57807085/

10-12 04:38