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

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

関連記事

Linux(CentOS7)にTomcatをインストールする手順について

(0)目次&概説 (1) 記事の目的/前提 (2) 実施手順  (2-1) Tomcat用ユーザ/グループ作成  (2-2) 資源のダウンロード  (2-3) 資源の解凍  (2-4) 資源に必要権限 …

Javaのフォーム認証でログインを行うと数回で固まってしまう事象の対処記録

<目次> (1) Javaのフォーム認証でログインを行うと数回で固まってしまう事象の対処記録  (1-1) 発生事象・エラーメッセージ  (1-2) 原因  (1-3) 対策 (1) Javaのフォー …

Tomcatを使ったフォーム認証でユーザ情報をデータベース管理する方法

<目次> (1) Tomcatを使ったフォーム認証でユーザ情報をデータベース管理する方法  (1-1) 前提条件  (1-2) STEP1:context.xmlにコネクションプールを設定  (1-3 …

JSP/Servletでウェルカムページが認証されない事象について

<目次> (1) JSP/Servletでウェルカムページが認証されない事象について  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処 (1) JSP/Servletで …

CATALINA_HOMEが設定されない時の想定原因と対処法

<目次> (1) CATALINA_HOMEが設定されない時の想定原因と対処法  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処法 (1) CATALINA_HOMEが …

  • English (United States)
  • 日本語
Top