tomcatにhttpsのSSL配置

8007 ワード

本教程はJDK 6とTomcat 7を使っています.他のバージョンは似ています.
基本ステップ:
  • Javaを使って一つを作成します. keystore ファイル
  • は、Tomcatを構成し、このkeystoreファイル
  • を使用する.
  • テスト
  • はSSL、例えばhttps://localhost:8443/yourApp
  • 1.keystoreファイルを作成する
    実行 keytool-genkey-alias tomcat-keyalg RSA  -keystore 「f:\tomcat.keystore」の結果は以下の通りです.
    loiane:bin loiane$ keytool -genkey -alias tomcat -keyalg RSA
    Enter keystore password:  password
    Re-enter new password: password
    What is your first and last name?
      [Unknown]:  Loiane Groner
    What is the name of your organizational unit?
      [Unknown]:  home
    What is the name of your organization?
      [Unknown]:  home
    What is the name of your City or Locality?
      [Unknown]:  Sao Paulo
    What is the name of your State or Province?
      [Unknown]:  SP
    What is the two-letter country code for this unit?
      [Unknown]:  BR
    Is CN=Loiane Groner, OU=home, O=home, L=Sao Paulo, ST=SP, C=BR correct?
      [no]:  yes
     
    Enter key password for
        (RETURN if same as keystore password):  password
    Re-enter new password: password
    このようにしてユーザーのホームディレクトリの下に作成しました.
    2.Tomcatを配置して、keystoreファイルを使用する
    server.xmlを開けて、次のコメントがあるところを探してください.
    コメントを消し、内容を
    Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
        disableUploadTimeout="true" enableLookups="false" maxThreads="25"
        port="8443" keystoreFile="/Users/loiane/.keystore" keystorePass="password"
        protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
        secure="true" sslProtocol="TLS" />
    3.テスト
    Tomcatを起動してアクセスします. https://localhost:8443. Tomcatのデフォルトのトップページが見えます.
    注意したいのは、デフォルトの8080ポートにアクセスするなら、まだ有効です.
    4.構成アプリケーションはSSLを使用する
    アプリケーションのweb.xmlファイルを開いて、追加構成は以下の通りです.
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>securedappweb-resource-name>
            <url-pattern>/*url-pattern>
        web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIALtransport-guarantee>
        user-data-constraint>
    security-constraint>
    URLマップを/*に設定すると、アプリケーション全体にHTTPSアクセスが要求されます.一方、Transport GaranteeタグはCONFIDENTIALに設定されています.
    SSLを閉じたいなら、CONFIDENTIALをNONEに変更すればいいです.