Hi All,
    I followed  the instruction below

http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#SSL_Support
   to config Tomcat7's *APR Connectors *SSL, but get error:

Error initializing endpoint
java.lang.Exception: Unable to load certificate key conf/key1cert.pem
(error:02001003:system library:fopen:No such process)

and the steps as follow,

step 1:
D:\OpenSSL-Win32\bin>openssl
 genrsa -des3 -out key1.pem 2048

enter pwd: test, to get a file : key1.pem

step 2:
req -new -x509 -key key1.pem -out key1cert.pem -days 1095

to get another file : key1cert.pem

step 3:
put these two files to apache-tomcat-7.0.4\conf

step 4:
update server.xml as follow:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener
className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <!--SSLEnabled="true"
protocol="org.apache.coyote.http11.Http11AprProtocol"-->
  <Service name="Catalina">
  <Connector port="443" maxHttpHeaderSize="8192"
   maxThreads="150" minSpareThreads="25"
   enableLookups="false" disableUploadTimeout="true"
   acceptCount="100" scheme="https" secure="true"
   clientAuth="false" sslProtocol="TLSv1"
   SSLEnabled="true" SSLEngine="on"
   SSLCertificateFile="conf/key1.pem"
   SSLCertificateKeyFile="conf/key1cert.pem"
   SSLPassword="test"
  />

  <Connector port="8009" enableLookups="false" redirectPort="443"
protocol="AJP/1.3" />

    <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"
resolveHosts="false"/>
      </Host>
    </Engine>
  </Service>
</Server>

step 5:
start tomcat, and result:

2010-11-24 16:21:13 org.apache.coyote.http11.Http11AprProtocol init
严重: Error initializing endpoint
java.lang.Exception: Unable to load certificate key conf/key1cert.pem
(error:02001003:system library:fopen:No such process)
 at org.apache.tomcat.jni.SSLContext.setCertificate(Native Method)
 at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:501)
 at
org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:80)
 at org.apache.catalina.connector.Connector.initInternal(Connector.java:873)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:100)
 at
org.apache.catalina.core.StandardService.initInternal(StandardService.java:542)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:100)
 at
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:717)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:100)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:544)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:567)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:262)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:417)
2010-11-24 16:21:13 org.apache.catalina.core.StandardService initInternal
严重: Failed to initialize connector [Connector[HTTP/1.1-443]]
LifecycleException:  Protocol handler initialization failed:
java.lang.Exception: Unable to load certificate key conf/key1cert.pem
(error:02001003:system library:fopen:No such process)
 at org.apache.catalina.connector.Connector.initInternal(Connector.java:875)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:100)
 at
org.apache.catalina.core.StandardService.initInternal(StandardService.java:542)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:100)
 at
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:717)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:100)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:544)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:567)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:262)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:417)
2010-11-24 16:21:13 org.apache.coyote.ajp.AjpAprProtocol init
严重: Error initializing endpoint
java.lang.Exception: Socket bind failed: [730048]
??????????????????×??????(Э??é/??????????????/??????)????????í????
 at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:412)
 at org.apache.coyote.ajp.AjpAprProtocol.init(AjpAprProtocol.java:89)


anyone can give me some tips?


Thanks & Regards,

Scott Li

Reply via email to