Aipo用 StartSSL 証明書更新(2017)

2017-02-20 追記
Chrome から AIPO に接続しようとすると「保護されていない通信」と言われるので、調べてみたところ、StartCom 社の不正のため Chrome では StartCom の SSL を認めなくなったようです。
ということで、残念ながら別の証明書を探す必要がありそうです...
</追記>

Aipo を入れているサーバーの StartSSL から取得した証明書の期限が切れるというお知らせが来たので、更新を試みたところかなりはまったので、来年のための忘備録も兼ねてメモ

まず、Google で検索して以下のページを見つけました。
基本的にはこの手順でいけるのですが、StartSSLの Certificates Wizard の画面が若干変わっています。
何だかわからないので、Leave a message に質問を投げてみましたが、要領を得ません。
無理やり赤字の DV SSL Certificate をクリックすると、次の画面が出ます。

最初の Finish をクリックすると次の画面が出ます。

domain に認証すべきドメイン名を入れて Continue を押すと、ドメインが validate されます。
先程の画面に戻り、Apply をクリックすると(上のQiita記事にもある)次の画面になります。


ここにAipoサーバーの keytool コマンドで作った csr ファイルの中身を貼り付けると証明書が発行されるので、それをやはり keytool で登録すればよいのですが、なかなかうまく行きませんでした。
結局 Aipo の SSL 通信についてのマニュアルを最初からなぞることで、なんとかなりました。おそらく、一番の問題は、keystore ファイルが2箇所にあって、どちらを更新すべきかわからないうちに作業をはじめてしまったことだと思います。最終的にうまくいった場所は、マニュアルにあるようにデフォルト位置の /root/.keystore で、あとで混乱しないように /usr/local/aipo/tomcat/conf/server.xml の中にあった、keystoreFile=".keystore" というディレクティブは削除しました。
StartSSL のマニュアル「Tomcat SSL Certificate Deployment Guide」も役に立ちます。そこに書いてあるように、使用するのは OtherServer.zip という圧縮ファイルに入っている crt ファイルです。(ftpを設定していなければ)scp コマンドでサーバーにあげます。マニュアルとは微妙に crt ファイルの名前が変更されています。
1_root.crt ⇒ root.crt
2_Intermediate.crt ⇒ 1_Intermediate.crt
3_ドメイン名.crt ⇒ 2_ドメイン名.crt 

したがって、keystore まわりの手順は以下のようなものになります。
  • 古い /root/.keystore をバックアップ
  • keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048
    コマンドで新しい .keystore を作成
  • keytool -certreq -alias tomcat -file aipo.csr
    コマンドで作成した aipo.csr の中身(テキスト)を StartSSL の Certificates Wizard の画面(上記)に貼り付け、証明書(crt ファイル)を発行してもらう。
  • 証明書(crt ファイル)ファイルの読み込み
    • keytool -importcert -alias root -trustcacerts -file root.crt
    • keytool -importcert -alias intermediate -trustcacerts -file 1_Intermediate.crt
    • keytool -importcert -alias tomcat trustcacerts -file 2_ドメイン名.crt
あと、マニュアルには書いてありませんが、root.crt 読み込みの際、
"Certificate already exists in system-wide CA keystore under alias ... Do you still want to add it to your own keystore? [no]:"
というメッセージが出たら Yes で進んでかまわないようです。

Commenti

Post popolari in questo blog

ES611の電池交換

ローカル変数は使用不可

神経回路モデルとバインディング問題