Hi Scott,
My working HTTPS connector using APR settings as below:
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11AprProtocol"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
SSLCertificateFile="C:\usr\tomcat\tomcat.crt"
SSLCertificateKeyFile="C:\usr\tomcat\tomcat.key"
SSLPassword="123456"
/>
Try to remove SSLEngine attribute and add protocol attribute, then re-start
Tomcat.
2010/11/24 Scott Li <[email protected]>
> 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 "%r" %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
>