スポンサーリンク
AWSのTomcatに証明書をインストールする方法を備忘録として残していきます。
AWSのインスタンスはVPCから作成して、Tomcatはインストールしておきます。
Tomcatは、Apacheと同様にopensslで設定するものだと思っていたのですが、「keytool」を使用して設定するようでした。
Tomcatに証明書をインストール
rootユーザに昇格します。
「.keystore」を作成します。
作成しているパスは/rootで作成しています。
「.keystore」の設定をします。
Re-enter new password: ←再度、同じパスワードを入力
What is your first and last name?
[Unknown]: 3.xxx.xxx.xxxx ←サーバーのIPを入力します
What is the name of your organizational unit?
[Unknown]: test ←testを入力
What is the name of your organization?
[Unknown]: test ←testを入力
What is the name of your City or Locality?
[Unknown]: test ←testを入力
What is the name of your State or Province?
[Unknown]: test ←testを入力
What is the two-letter country code for this unit?
[Unknown]: jp ←testを入力
Is CN=3.112.230.4, OU=test, O=test, L=test, ST=test, C=jp correct?
[no]: yEnter key password for <tomcat> ←yesを入力
(RETURN if same as keystore password):Warning: ←keystore と同じパスワードの場合は、空エンターを入力
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore certtest.keystore -destkeystore certtest.keystore -deststoretype pkcs12".
lsコマンドで、「.keystore」が作成されていることを確認します。
total 24
dr-xr-x--- 3 root root 128 Apr 24 16:33 .
dr-xr-xr-x 18 root root 257 Apr 24 12:43 ..
-rw-r--r-- 1 root root 18 Oct 18 2017 .bash_logout
-rw-r--r-- 1 root root 176 Oct 18 2017 .bash_profile
-rw-r--r-- 1 root root 176 Oct 18 2017 .bashrc
-rw-r--r-- 1 root root 2216 Apr 24 16:33 certtest.keystore ←「.keystore」が作成されています
-rw-r--r-- 1 root root 100 Oct 18 2017 .cshrc
drwx------ 2 root root 29 Apr 24 12:43 .ssh
Tomcatがインストールされているパスにコピーします。
コピー前に、「.keystore」が存在しないことを確認します。
total 228
drwxr-xr-x 4 root tomcat 231 Apr 24 16:18 .
drwxr-xr-x 88 root root 8192 Apr 24 16:18 ..
drwxrwxr-x 3 root tomcat 23 Apr 24 16:18 Catalina
-rw-r--r-- 1 root tomcat 13443 Mar 5 19:32 catalina.policy
-rw-r--r-- 1 root tomcat 6696 Mar 5 19:32 catalina.properties
drwxr-xr-x 2 root tomcat 20 Apr 24 16:18 conf.d
-rw-r--r-- 1 root tomcat 1394 Mar 5 19:32 context.xml
-rw-r--r-- 1 root tomcat 547 Mar 5 19:33 log4j.properties
-rw-r--r-- 1 root tomcat 3288 Mar 5 19:32 logging.properties
-rw-r--r-- 1 root tomcat 6629 Mar 5 19:32 server.xml
-rw-r--r-- 1 root tomcat 1654 Mar 5 19:33 tomcat.conf
-rw-r----- 1 root tomcat 2418 Mar 5 19:32 tomcat-users.xml
-rw-r--r-- 1 root tomcat 167655 Mar 5 19:32 web.xml
「.keystore」をコピーします。
lsコマンドで、コピーされていることを確認します。
total 232
drwxr-xr-x 4 root tomcat 256 Apr 24 16:35 .
drwxr-xr-x 88 root root 8192 Apr 24 16:18 ..
drwxrwxr-x 3 root tomcat 23 Apr 24 16:18 Catalina
-rw-r--r-- 1 root tomcat 13443 Mar 5 19:32 catalina.policy
-rw-r--r-- 1 root tomcat 6696 Mar 5 19:32 catalina.properties
-rw-r--r-- 1 root root 2216 Apr 24 16:35 certtest.keystore←「.keystore」がコピーされています
drwxr-xr-x 2 root tomcat 20 Apr 24 16:18 conf.d
-rw-r--r-- 1 root tomcat 1394 Mar 5 19:32 context.xml
-rw-r--r-- 1 root tomcat 547 Mar 5 19:33 log4j.properties
-rw-r--r-- 1 root tomcat 3288 Mar 5 19:32 logging.properties
-rw-r--r-- 1 root tomcat 6629 Mar 5 19:32 server.xml
-rw-r--r-- 1 root tomcat 1654 Mar 5 19:33 tomcat.conf
-rw-r----- 1 root tomcat 2418 Mar 5 19:32 tomcat-users.xml
-rw-r--r-- 1 root tomcat 167655 Mar 5 19:32 web.xml
Tomcatのディレクトリに移動します。
pwd
/etc/tomcat
server.xmlを編集するので、作業前にバックアップしておきます。
viでserver.xmlを編集していきます。
8443のポートに接続するように編集していきます。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!--と-->を削除して、コメントアウトを外します。
keystorePass="xxxx"には、パスワードを入力します。
keystoreFile="/etc/tomcat/certtest.keystore"には、「.keystore」のパスを指定します。
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystorePass="xxxx" keystoreFile="/etc/tomcat/certtest.keystore"/>
Tomcatを再起動します。
systemctl start tomcat.service
systemctl status tomcat.service
https://IPアドレス:8443でアクセスします。
警告が表示されるので、詳細設定をクリックします。
今回は、自分で用意した証明書と設定になるので、「IPアドレスにアクセスする(安全ではありません)」をクリックして、サイトにアクセスします。
無事、サイトにアクセスすることができました。
ただ、8080のポートは残してあるままなので、まだ「IPアドレス:8080」にアクセスできるようになっていました。
今回はここまでで終了して、8080にはアクセスできないように設定したいと思います。