TomcatでSSLを設定し、HTTPからHTTPSへの自動リダイレクトをセットアップする手順
Secure Socket Layer (SSL)は、インターネット上でメッセージのセキュリティを提供するための暗号化プロトコルです。このプロトコルは、プライベートキーとパブリックキーの概念に基づいており、メッセージはネットワーク上で送信する前に暗号化されます。TomcatでSSLを設定するためには、開発環境ではJavaのキーツールを使用してデジタル証明書を作成する必要があります。本番環境では、Verisign、Entrust、Let’s EncryptなどのSSL証明書プロバイダーからデジタル証明書を取得する必要があります。
「SSL証明書を作成する」となります。
以下の手順に従って、独自のデジタル証明書を作成してください。
$ keytool -genkey -alias tomcat -keyalg RSA -keystore mycertificate.cert
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: Pankaj Kumar
What is the name of your organizational unit?
[Unknown]: Dev
What is the name of your organization?
[Unknown]: JournalDev
What is the name of your City or Locality?
[Unknown]: Bangalore
What is the name of your State or Province?
[Unknown]: Karnataka
What is the two-letter country code for this unit?
[Unknown]: IN
Is CN=Pankaj Kumar, OU=Dev, O=JournalDev, L=Bangalore, ST=Karnataka, C=IN correct?
[no]: Yes
Enter key password for <tomcat>
(RETURN if same as keystore password):
Re-enter new password:
$ ls
mycertificate.cert
私はキーストアとキーに「changeit」というパスワードを使用してきましたが、あなたは好きなものを使用することができます。今、私たちのデジタル証明書は準備ができており、次のステップはTomcatでHTTPS通信ポートを有効にし、SSLサポートを提供するためにデジタル証明書を使用する設定を行うことです。
トムキャットのHTTPS
SSLを有効にするには、~Tomcat_Installation/conf/server.xmlファイルを開き、以下の行のコメントを外してください。
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
keystoreFile="/Users/Pankaj/tomcat/conf/mycertificate.cert"
clientAuth="false" sslProtocol="TLS" />
トムキャットは、HTTPからHTTPSへのリダイレクトを行います。
HTTPとHTTPSのポートの両方で任意のWebアプリケーションにアクセスできるため、いくつかの設定でTomcatを設定して、すべてのHTTPリクエストをHTTPSポートにリダイレクトすることができます。
-
- 「~TomcatInstallation/conf/server.xml」において、HTTPコネクタのリダイレクトポートをHTTPSコネクタのポートに設定してください。次のような設定になります:
Entire Application /* CONFIDENTIAL
今すぐトムキャットを再起動し、すべてのHTTPリクエストは自動的にHTTPSにリダイレクトされます。つまり、https://localhost:8080/axis2 は自動的に https://localhost:8443/axis2 にリダイレクトされます。注意:URLにポートを指定したくない場合は、HTTPには80、HTTPSには443を使用してください。その場合、HTTPリクエストを自動的にHTTPSにリダイレクトする最初のステップをスキップすることができます。なぜなら、デフォルトポート443が自動的に選択されるからです。更新:トムキャットで作業している場合、以下の投稿にご興味があるかもしれません。
- Java Web Application Tutorial
- Java Servlet Tutorial