- - PR -
TomcatとSSL通信
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-15 00:58
はじめまして。Sampleといいます。
TomcatでSSL通信を行うサーブレットアプリを開発しようとしています。 開発環境は以下のとおりです。 ・WindowsXP Professional ・jakarta-tomcat-4.1.30/jakarta-tomcat-5.0.19 ※4.1と5.0の両方で試しました。 ・JavaVM j2sdk1.4.2_03 ・Eclipse Platform Version: 2.1.2 Apache Jakarta Project(http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/ssl-howto.html)を参考に証明書のキーストアを作成して、Tomcatの設定ファイルを編集し、https://localhost:8443にアクセスするのですが、Tomcat起動時に例外が発生し、起動しません。 例外内容は以下のとおりです。 -------------------------------------------- java.lang.ClassNotFoundException: Can't find any SSL implementation at org.apache.tomcat.util.net.SSLImplementation.getInstance(SSLImplementation.java:100) at org.apache.tomcat.util.net.SSLImplementation.getInstance(SSLImplementation.java:106) at org.apache.coyote.http11.Http11Protocol.checkSocketFactory(Http11Protocol.java:797) at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:166) at org.apache.coyote.tomcat5.CoyoteConnector.initialize(CoyoteConnector.java:1445) at org.apache.catalina.core.StandardService.initialize(StandardService.java:648) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2416) at org.apache.catalina.startup.Catalina.load(Catalina.java:545) at org.apache.catalina.startup.Catalina.load(Catalina.java:566) 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:324) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:397) -------------------------------------------- 上の例外を解決する情報を見つけることができず、対処に行き詰まっています。 解決する方法や参考サイトなどありましたら、お手数をお掛けしますが、よろしくお願いいたします。 |
|
投稿日時: 2004-10-17 23:32
Sampleです。
CATALINA_HOMEに4.1のパスが通っており、 Tomcat5.0でstartupしても、動作しなかったことが原因のひとつ。 また、CATALINA_HOMEに5.0のパスを通して、eclispでtomcatを起動し、 SSL認証するとエラーが発生する。 CATALINA_HOME\bin\startup.batよりtomcat起動すると、 SSL認証ためのポップアップが表示され、証明書の確認が表示される。 4.1は原因不明。 server.xmlでSSL認証の環境を整えても、eclipsから起動できないのでしょうか?? 現状、5.0のstart.batより起動し、動作を確認しています。 [ メッセージ編集済み 編集者: Sample 編集日時 2004-10-17 23:35 ] |
|
投稿日時: 2005-05-16 16:34
tadaです。
Tomcat単体でSSLの設定を行おうとしているのですが、tomcatが起動しません。 下記手順により、SSL設定を行いました 1.%CATALINA_HOME%conf/server.xmlの <!-- Define a SSL Coyote HTTP/1.1 Connector on port 443 --> <!-- <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="443" minProcessors="5" maxProcessors="75" enableLookups="true" acceptCount="100" debug="0" scheme="https" secure="true" useURIValidationHack="false" disableUploadTimeout="true"> <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory" keystoreFile=".keystore" keystorePass="tomcat" clientAuth="false" protocol="TLS" /> </Connector> --> のポート番号を443に変更し、コメントアウトをはずす 2.コマンドプロンプトにより証明書を作成 keytool -genkey -alias tomcat -keyalg RSA .... 3.tomcatを再起動する 3.でeclipseから再起動しようとすると ------------------------------------------------------------------------------ Catalina.start: LifecycleException: Protocol handler initialization failed: java.lang.ClassNotFoundException: Can't find any SSL implementation LifecycleException: Protocol handler initialization failed: java.lang.ClassNotFoundException: Can't find any SSL implementation at org.apache.coyote.tomcat4.CoyoteConnector.initialize(CoyoteConnector.java:1034) at org.apache.catalina.core.StandardService.initialize(StandardService.java:579) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2245) at org.apache.catalina.startup.Catalina.start(Catalina.java:511) at org.apache.catalina.startup.Catalina.execute(Catalina.java:400) at org.apache.catalina.startup.Catalina.process(Catalina.java:180) 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:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203) Catalina.stop: LifecycleException: このサーバは、まだ起動されていません LifecycleException: このサーバは、まだ起動されていません at org.apache.catalina.core.StandardServer.stop(StandardServer.java:2212) at org.apache.catalina.startup.Catalina.start(Catalina.java:543) at org.apache.catalina.startup.Catalina.execute(Catalina.java:400) at org.apache.catalina.startup.Catalina.process(Catalina.java:180) 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:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203) ------------------------------------------------------------------------------- というエラーメッセージが出力されます。 tomcatのjarファイルが壊れているのかと思い、再度jarファイルを置きなおしましたが やはり同様のエラーが出ました。 Tomcat4.1系ではTomcat単体のSSLは設定できないのでしょうか? eclipseでの再起動が原因かと思い、コマンドプロンプトからstartupコマンドで 起動しようとしても、コンソールが立ち上がらず再起動できません。 環境は ・Windows2000 5.00.2195 Service Pack 4 ・Tomcat 4.1.18 ・J2SE 1.4.1_01 ・eclipse 2.1.0 です。 解決方法や、参考ページ等ご教授頂けますでしょうか? 宜しくお願い致します。 |
|
投稿日時: 2005-05-16 18:59
tadaです。
自己レスです。 1.%CATALINA_HOME%conf/server.xmlの <!-- Define a SSL Coyote HTTP/1.1 Connector on port 443 --> <!-- <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="443" minProcessors="5" maxProcessors="75" enableLookups="true" acceptCount="100" debug="0" scheme="https" secure="true" useURIValidationHack="false" disableUploadTimeout="true"> <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory" keystoreFile=".keystore" keystorePass="tomcat" clientAuth="false" protocol="TLS" /> </Connector> --> 上記の設定で、作成したKeystoreファイルの置き場所を%CATALINA_HOME% に設定したのに、違う場所にKeystoreファイルを置いたのが原因でした。 正確な場所に置きなおした後、コマンドプロンプトからstartupコマンドで Tomcatを起動したところ、無事起動できました。 サービスからの起動にも成功しましたが、やはりeclipseからの起動は 出来ませんでした。 お騒がせ致しました。 |
1