Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Tomcat

Tomcatでhttps接続を行う方法(自己証明書を使ってSSL化する方法)

投稿日:2021年2月25日 更新日:

<目次>

(1) Tomcatでhttps接続を行う方法(自己証明書を使ってSSL化する方法)
 (1-1) STEP1:鍵や証明書の作成
 (1-2) STEP2:証明書の配備(任意)
 (1-3) STEP3:server.xmlの編集
 (1-4) STEP4:ファイアウォール設定
 (1-5) STEP5:疎通チェック

(1) Tomcatでhttps接続を行う方法(自己証明書を使ってSSL化する方法)

本記事ではTomcatを「https」に対応させる手順をご紹介します。大まかな流れとしては、①SSL証明書を作る⇒②Tomcatの設定ファイル「server.xml」に反映させる⇒③ファイアウォールの設定を行う⇒④疎通となります。早速、各ステップの手順を見ていきます。

(1-1) STEP1:鍵や証明書の作成

「https」に対応させるためには「SSL証明書」を準備する必要があります。
 
本来であれば、証明書は認証局(Certification Authority)から認められた「EV証明書・OV証明書・DV証明書」などを利用する必要がありますが、今回は簡単な疎通テストのため、まずは「自己証明書」(通称:オレオレ証明書)を使って進めます。
 
自己証明書はコマンドを使って自分で発行できる手軽さがある反面、正式な証明書としては使えないものになります。限られた数人で使うとか、個人情報等を扱わない等であれば、お金を払って証明書を発行するのもコスパが良くないので最悪は自己証明書でも良いかも知れませんが、お客様にサービスを提供する場合(絶対にデータの傍受が許されない場合)はやはり正式な証明書が必要となります。
 
前置きが長くなりましたが、証明書を発行するコマンドは以下の通りです。
 
(STEP1)鍵や証明書の作成
keytool -genkey -alias tomcat -keyalg RSA -keypass [パスワード] -keystore mycertificate.cer -storepass [パスワード]
(図111)

このkeytoolコマンドは主に公開鍵/秘密鍵の管理や、証明書の発行などで使用します。「証明書」というのはある組織や個人によるデジタル署名で、これによりデータの完全性などを証明します。各オプションの概要は以下の表の通りです。
(表)

オプション 説明
-genkey 「キーストア」と「キーペア」(「秘密鍵」と「SSL証明書」)を生成するためのオプションです。ただし、最近では「-genkeypair」の方を利用するようです(名前は違うが同じもの)。
-alias 「キーストア」の明細を参照する時に使う「別名」(alias)です。
-keyalg 「キーペア」を生成する際のアルゴリズム(暗号体系)を指定します。
-keypass 「キーストア」の中の「秘密鍵」のパスワードです。
-keystore 「キーストア」の「ファイル名」(「ファイルパス」も任意指定可能)を指定するオプションです。パスを指定しない場合はカレントディレクトリに生成されます。
-storepass 「キーストア」のパスワードです。キーストアというのは複数の鍵や証明書を含んだバイナリファイルです。

(図111)補足

コマンドを実行すると、証明書の作成に必要な各種情報を聞いてくるので、それぞれ入力して[Enter]を押下します。

姓名は何ですか。
  [Unknown]:  Rainbow Planet
組織単位名は何ですか。
  [Unknown]:  Rainbow Planet Inc
組織名は何ですか。
  [Unknown]:  Rainbow Planet Inc
都市名または地域名は何ですか。
  [Unknown]:  Marunouchi
都道府県名または州名は何ですか。
  [Unknown]:  Tokyo
この単位に該当する2文字の国コードは何ですか。
  [Unknown]:  JP
CN=Rainbow Planet, OU=Rainbow Planet Inc, O=Rainbow Planet Inc, L=Marunouchi, ST=Tokyo, C=JPでよろしいですか。
  [いいえ]:  y
(図112)

目次にもどる

(1-2) STEP2:証明書の配備(任意)

作成した証明書を任意のディレクトリに配備します。例ではTomcatのconfigが置いてあるディレクトリ($CATALINA_HOME/conf)に配備します。

mv ./mycertificate.cer $CATALINA_HOME/conf
(図121)
 

この配備先のパスは後のserver.xmlの編集にて使用します。

目次にもどる

(1-3) STEP3:server.xmlの編集

server.xmlはTomcatの中核をなす設定ファイル(xmlファイル)です。Tomcatのアーキテクチャにおける「Server」や「Service」や「Connector」の設定を司っています。ここにhttps用のConnectorを設定し、8443ポートで通信出来るようにします。

■server.xmlの格納場所

$CATALINA_HOME/conf

私の場合は具体的に次のようなパスです(Xの部分はTomcatのバージョン番号)

/usr/local/src/apache-tomcat-X.X.XX/conf
(図131)viエディタで開く
 
■追記する場所

以下Serviceタグの配下に記述します。

  <Service name="Catalina">
 
■追記する内容
追記はviエディタ等で行います。viエディタの使い方についてはこちらの記事(⇒viエディタの使い方)をご参照ください。
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               scheme="https"
               secure="true"
               clientAuth="false"
               sslProtocol="TLS"
               sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1"
               keystoreFile="conf/mycertificate.cer" keystorePass="[パスワード]" />

(図132)追記

目次にもどる

(1-4) STEP4:ファイアウォール設定

ファイアウォールで8443ポートを開放します。OS毎に設定箇所は異なりますが、以下にCentOSの設定方法をご紹介します。

 
 

(1-5) STEP5:疎通チェック

最後にTomcatのデフォルトページにアクセスして疎通チェックをします。うまく設定できていれば、以下の両方のURLでTomcatのデフォルトページが表示されるはずです。

http://ik1-336-28337.vs.sakura.ne.jp:8080/
https://ik1-336-28337.vs.sakura.ne.jp:8443/
(図151)HTTPで疎通

(図152)HTTPSで疎通①:自己証明書なので警告画面が表示される

(図152)HTTPSで疎通②:FireFoxの場合「詳細情報」⇒「危険性を承知で続行」を押下

(図152)HTTPSで疎通③:HTTPSでTomcatデフォルト画面が開いた

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Tomcat

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

TomcatでEclipseを使う際にserver.xmlを編集しても上書きされる事象の対処方法

<目次> (1) TomcatでEclipseを使う際にserver.xmlを編集しても上書きされる事象の対処方法  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処法 …

Tomcatの起動時のエラー「アドレスは既に使用中です」や「必要な幾つかのポートがすでに使用中です」の対処方法

<目次> (1) Tomcatの起動時のエラー「アドレスは既に使用中です」や「必要な幾つかのポートがすでに使用中です」の対処方法  (1-1) 発生状況  (1-2) 原因  (1-3) 対処方法 ( …

Tomcatのフォーム認証(DataSourceRealm)で403エラー等が発生した場合の対処

<目次> (1) Tomcatのフォーム認証(DataSourceRealm)で403エラー等が発生した場合の対処  (1-1) エラー①:HTTP 403 Forbidden   (1-1-1) 発 …

Eclipseで”Unknown version of Tomcat was specified”エラーが出た時の対処方法

<目次> (1) Eclipseで”Unknown version of Tomcat was specified”エラーが出た時の対処方法  (1-1) 事象  (1-2) …

Tomcatのコネクションプールの設定手順

<目次> (1) Tomcatのコネクションプールの設定手順  (1-1) コネクションプールとは?  (1-2) コネクションプールの設定手順   (1-2-1) context.xmlの記述    …

  • English (United States)
  • 日本語
Top