Tomcat5 で SSL を有効にする

Share/Save
  1. server.xml で以下の設定がコメントアウトされているので、有効にする。
    <Connector port="8443" maxHttpHeaderSize="8192"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" disableUploadTimeout="true"
              acceptCount="100" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS" /&gt
  2. とりあえずここで tomcat をリスタートしてみると catalina.out に例外が。
    SEVERE: Catalina.start:
    LifecycleException:  service.getName(): "Catalina";  Protocol handler start failed: java.io.FileNotFoundException: /usr/share/tomcat5/.keystore (No such file or directory)
           at org.apache.catalina.connector.Connector.start(Connector.java:1097)
           at org.apache.catalina.core.StandardService.start(StandardService.java:457)
           at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
           at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
           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.start(Bootstrap.java:295)
           at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
    Dec 8, 2008 7:22:42 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 306 ms
  3. キーストアが無い、と怒られたのでつくる。
    # /usr/java/jdk1.6.0_06/bin/keytool -genkey -alias tomcat -keyalg RSA
    Enter keystore password:  ← "changeit" といれておく。
    Re-enter new password: ← "changeit" といれておく。
    What is your first and last name?
     [Unknown]:  xxx
    What is the name of your organizational unit?
     [Unknown]:  xxx
    What is the name of your organization?
     [Unknown]:  xxx
    What is the name of your City or Locality?
     [Unknown]:  xxx
    What is the name of your State or Province?
     [Unknown]:  Tokyo
    What is the two-letter country code for this unit?
     [Unknown]:  JP
    Is CN=xxx, OU=xxx, O=xxx, L=xxx, ST=Tokyo, C=JP correct?
     [no]:  yes
     
    Enter key password for <tomcat>
           (RETURN if same as keystore password): ←リターンを押す

    changeit 以外のパスワードでもよいが、設定の追加が必要になる。
  4. root で作ると root のホームディレクトリに .keystore ディレクトリが作成される。これは tomcat5
    が期待する /usr/share/tomcat5/.keystore とは異なるので、移動しておく。
    # mv .keystore /usr/share/tomcat5
  5. port 8443 で動くようになった。
    # netstat -antp | grep java
    tcp        0      0 127.0.0.1:8005              0.0.0.0:*    LISTEN      24638/java
    tcp        0      0 0.0.0.0:8009                0.0.0.0:*    LISTEN      24638/java
    tcp        0      0 0.0.0.0:8080                0.0.0.0:*    LISTEN      24638/java
    tcp        0      0 0.0.0.0:8443                0.0.0.0:*    LISTEN      24638/java

参考

in