首页 > 解决方案 > apache tomcat 无法加载证书密钥

问题描述

我正在尝试https使用apache 9.0.36. 我买了一个域名,我有

  1. lohgoda.crt- 证书
  2. lohgoda.p7b- 证书密钥
  3. lohgoda.ca-bundle- 不知道

因为我从 namecheap.com 购买了 ssl 证书,所以我已经准备好让它工作了。我已经使用这个命令创建了一个密钥库 keytool -genkey -alias tomcat -keyalg RSA -keystore keystore.jks -keysize 2048,然后使用这个命令信任了证书,keytool -import -trustcacerts -alias tomcat -file lohgoda.p7b -keystore keystore.jks并且 tomcat 抛出了这个错误。

java.lang.Exception: Unable to load certificate key C:\apache-tomcat-9.0.36\lohgoda.p7b (error:0909006C:PEM routines:get_name:no start line)

服务器.xml


          <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

          <Connector protocol="org.apache.coyote.http11.Http11AprProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" SSLCertificateFile="lohgoda.crt" SSLCertificateChainFile="lohgoda.ca-bundle" SSLCertificateKeyFile="lohgoda.p7b" SSLVerifyClient="optional" SSLProtocol="TLSv1.1+TLSv1.2" />

          <Engine name="Catalina" defaultHost="localhost">

               <Realm className="org.apache.catalina.realm.LockOutRealm">

                    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
               </Realm>

               <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

                    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />

               </Host>
          </Engine>
     </Service>

如果我使用此命令将 lohgoda.p7b 转换为 lohgoda.pem,则会 openssl pkcs7 -print_certs -in lohgoda.p7b -out lohgoda.pem 出现相同的错误。

标签: ssltomcatcertificatessl-certificate

解决方案


推荐阅读