windows 上の local tomcat 10 serverに オレオレ証明書をインストールしてHTTPSでアクセスする / keytool による典型的な SSL Server 証明書の作り方 (part 3)
tag: tomcat10, オレオレ証明書, windows, keytool, openjdk16
前回 に続いて、オレオレ証明書の作成。
今回はtomcat10用。openjdk 16を使用。
■証明書の作成
keytool のサンプルにしたがって、root CA , Intermediate CA , server の3段階で証明書の連鎖を作る。
root CA を作ってファイルにexportしているので、オレオレ root.crt を「信頼できるルート証明書」としてインポートすると、オレオレなんだけど警告は出なくなる。
今回は SubjectNameAlias の IP に、自宅サーバのローカルIPアドレスも登録している。
一応注意書き:インチキなルート証明書をインストールするのはあまりオススメできない行為。
以下PowerShellで実施。
# Generating Certificates for a Typical SSL Server # # The following are keytool commands to generate keypairs and certificates for three entities, # namely, Root CA (root), Intermediate CA (ca), and SSL server (server). # Ensure that you store all the certificates in the same keystore. # In these examples, it is recommended that you specify RSA as the key algorithm. # 各種定義、ディレクトリ定義 (Power Shell) $IPADDR = "192.168.1.35" $KEY_STORE_DIR="C:/HOME/tomcat/ssl" $TOMCAT_BASE_DIR="C:/Program Files/Apache Software Foundation/Tomcat 10.0" # ディレクトリ移動 cd $KEY_STORE_DIR # 前回作成したキーストアを削除する rm root.jks rm ca.jks rm server.jks keytool -genkeypair -keyalg RSA -keystore root.jks -storepass changeit -alias root -ext bc:c -validity 180 -dname "CN=root , O=root , L=Chuo-ku , ST=Tokyo , C=JP" keytool -genkeypair -keyalg RSA -keystore ca.jks -storepass changeit -alias ca -ext bc:c -validity 180 -dname "CN=CA , O=CA , L=Chuo-ku , ST=Tokyo , C=JP" keytool -genkeypair -keyalg RSA -keystore server.jks -storepass changeit -alias server -ext "SubjectAlternativeName=IP:${IPADDR}" -validity 180 -dname "CN=${IPADDR} , O=${IPADDR} , L=Chuo-ku , ST=Tokyo , C=JP" keytool -exportcert -keystore root.jks -storepass changeit -alias root -rfc -file root.pem keytool -exportcert -keystore root.jks -storepass changeit -alias root -rfc -file root.crt keytool -certreq -keystore ca.jks -storepass changeit -alias ca -file ca.csr keytool -gencert -infile ca.csr -keystore root.jks -storepass changeit -alias root -ext BC=0 -rfc -outfile ca.pem keytool -importcert -noprompt -keystore ca.jks -storepass changeit -alias root -file root.pem keytool -importcert -noprompt -keystore ca.jks -storepass changeit -alias ca -file ca.pem keytool -certreq -keystore server.jks -storepass changeit -alias server -ext "SubjectAlternativeName=IP:${IPADDR}" -file server.csr keytool -gencert -infile server.csr -keystore ca.jks -storepass changeit -alias ca -ext "ku:c=dig,kE" -ext "SubjectAlternativeName=IP:${IPADDR}" -rfc -outfile server.pem keytool -importcert -noprompt -keystore server.jks -storepass changeit -alias root -file root.pem keytool -importcert -noprompt -keystore server.jks -storepass changeit -alias ca -file ca.pem keytool -importcert -noprompt -keystore server.jks -storepass changeit -alias server -file server.pem keytool -list -keystore root.jks -storepass changeit keytool -list -keystore ca.jks -storepass changeit keytool -list -keystore server.jks -storepass changeit keytool -printcert -file server.pem cp server.jks "${TOMCAT_BASE_DIR}/conf/server.jks"
■Tomcat 10 の server.xmlの編集
code "C:/Program Files/Apache Software Foundation/Tomcat 10.0/conf/server.xml"
記載内容。
JSSE NIO2を使っている。 今回は tomcat native はインストールしていないので、以下の記述となった。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/server.jks" type="RSA" /> </SSLHostConfig> </Connector>
■自作のルート証明書をブラウザからインポートする(オプション)
FirefoxかChromeか新Edgeを起動し、設定から証明書を検索して、ルート証明書(root.crt)のインポートを行う。
割と危ない行為なので、何が起きるのか理解している人のみ実施してね。
■管理者権限を持つPowerShellからtomcatを再起動する。
# サービス一覧の表示 Get-Service -name "to*" # サービスを再起動する場合は以下。 Restart-Service Tomcat10
■tomcatにアクセスする。
オレオレで作ったルート証明書をインポートしているので、HTTPSで通信しても特に警告は出ない。
証明書に登録したのは 192.168.1.35 なので、localhostだと通信先が同じでも警告がでる。
■おまけ IPアドレス2個目用の証明書作成
root CAとintermediate CAはそのまま流用。server.jksだけ作る。以下のような感じ。
管理者特権を持つPowerShellにて実施
# 各種定義、ディレクトリ定義 (Power Shell) $IPADDR = "192.168.1.33" $KEY_STORE_DIR="C:/HOME/tomcat/ssl" $TOMCAT_BASE_DIR="C:/Program Files/Apache Software Foundation/Tomcat 10.0" # ディレクトリ移動 cd $KEY_STORE_DIR # 前回作成したキーストアを削除する rm server.jks keytool -genkeypair -keyalg RSA -keystore server.jks -storepass changeit -alias server -ext "SubjectAlternativeName=IP:${IPADDR}" -validity 180 -dname "CN=${IPADDR} , O=${IPADDR} , L=Chuo-ku , ST=Tokyo , C=JP" keytool -certreq -keystore server.jks -storepass changeit -alias server -ext "SubjectAlternativeName=IP:${IPADDR}" -file server.csr keytool -gencert -infile server.csr -keystore ca.jks -storepass changeit -alias ca -ext "ku:c=dig,kE" -ext "SubjectAlternativeName=IP:${IPADDR}" -rfc -outfile server.pem keytool -importcert -noprompt -keystore server.jks -storepass changeit -alias root -file root.pem keytool -importcert -noprompt -keystore server.jks -storepass changeit -alias ca -file ca.pem keytool -importcert -noprompt -keystore server.jks -storepass changeit -alias server -file server.pem keytool -list -keystore root.jks -storepass changeit keytool -list -keystore ca.jks -storepass changeit keytool -list -keystore server.jks -storepass changeit keytool -printcert -file server.pem cp server.jks "${TOMCAT_BASE_DIR}/conf/server.jks"
Windows 10を完全にシャットダウンする
tag: windows10
Shiftキーを押しながらシャットダウンをクリックすると完全シャットダウンになる模様。
デバイスが認識されないとか、変な状況になったら試してみる価値あり。
知らんかったw
別解として、「高速スタートアップを有効にする」をオフにする手もある。こっちを使ってたわ。
タスクバーの天気を消す方法
tag: windows10
手順:タスクバーの何もない場所で右クリック→ニュースと関心事項→無効にする
スマホのウィジット表示なら許せるけど、タスクバーでやられるとなぜか気になる。 つかマウスオーバーで拡大表示するのはやめろォォォ。