SSLの更新方法
2014年7月30日 - 未分類
注意:ここの情報を必要としている方は、herokuでSSLを使ったサイトを運用されている方だけです。
cloud-garden.com は、AMAZON AWSでherokuを使って運用されています。2016年7月末で、SSL証明の期限が切れてしまったので更新をしました。2014年に、1度、更新したのですが、2年後には、何かが少し変わっていたようで、苦労しました。時間をロスしたので、同様の失敗がないように情報共有いたします。SSLの更新なんて、1年か2,3年に一度のことです。更新方法は、きっと忘れていることでしょう。SSL証明を更新しなければいけないのに、困ったって言う時に、この情報が役に立つと思います。
先ずは、SSLの技術用語を説明します。初心者は、技術用語が分からず、先に進めなくなりますので重要な事です。また、同様の内容を別の言葉で表現している場合があるので注意が必要です。以下は、SSL証明書インストールに関するメモ からの引用です。
秘密鍵
このファイル名はおおよそ*.keyとなっています。一部サイトでは*.pemや*.key.pemとされています。秘密鍵かどうかを確認するには、ファイルの内容を確認します。「-----BEGIN RSA PRIVATE KEY-----
」で始まり、「----END RSA PRIVATE KEY-----
」で終わります。場合によっては「RSA」が無いものもあるようです。「PRIVATE KEY」という文字列があればほぼ間違いないでしょう。
CSRファイル
認証局に認証してもらうために提出するファイルです。秘密鍵を基にした(秘密鍵そのものとある解説サイトもあるけど、秘密鍵を送ると秘密鍵の意味が無いので間違いと思われ)情報と、サーバーの管理者情報から生成されたファイルは、*.csrとなっています。一部サイトでは*.csr.pemやcsr.pemとされています。CSRファイルかどうかを確認するには、ファイルの内容を確認します。「-----BEGIN CERTIFICATE REQUEST-----
」で始まり、「-----END CERTIFICATE REQUEST-----
」で終わります。もしくは「-----BEGIN NEW CERTIFICATE REQUEST-----
」で始まり、「-----END NEW CERTIFICATE REQUEST-----
」で終わります。「CERTIFICATE REQUEST」という文字列があればほぼ間違いないでしょう。
公開鍵
認証局より送り返されてくるファイルです。COMODOの場合はサーバ証明書と中間証明書が書庫ファイルになってメールに添付されます。Verisignの場合はメールの本文に挿入されるので、新規にファイルを作成しコピペして保存することになります。このファイルの保存名が*.cerや*.crtといったものから、certificate.txtなど、ファイルの内容を連想するにも困難なものまであります。COMODOの場合は中間証明書が*.ca-bundleでした。ファイルとしては公開鍵なので、内容を確認すると「-----BEGIN CERTIFICATE-----
」で始まり、「-----END CERTIFICATE-----
」で終わります。公開鍵に関しては見て回ったサイトの中ではどれも一致していました。
中間証明書
これは認証局を証明するためのファイルです。ルート証明書とも言われているようです。公的な認証局ではなく、独自に証明する場合はオレオレ証明書などと呼ばれます。基本的にはブラウザに既にインストールされています。ここではオレオレ証明書については説明しません。一部サイトではサーバ証明書とルート証明書が混同して解説されています。このようなサイトもパクっ(以下略)。このファイルは公開鍵なので、上記公開鍵と同じ「-----BEGIN CERTIFICATE-----
」で始まり、「-----END CERTIFICATE-----
」で終わります。
要するに、SSL通信には、秘密鍵と公開鍵とルート証明書が必要というわけです。
SSLの認証の更新手順
さて、SSLの認証の更新をしていきましょう。なお、以下の手順は、AWSの上でなくても、PCで実行できます。
手順1
// 秘密鍵(private key)を作る
openssl genrsa -des3 -out server.pass.key 2048
openssl rsa -in server.pass.key -out server.key
手順2
// 公開鍵作成用の鍵(CSRファイル)を作る
openssl req -nodes -new -key server.key -out server.csr
ou are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Shiga
Locality Name (eg, city) []:Otsu
Organization Name (eg, company) [Internet Widgits Pty Ltd]:itplants,ltd.
Organizational Unit Name (eg, section) []:General
Common Name (e.g. server FQDN or YOUR name) []:www.cloud-garden.com
Email Address []:xxxxx@itplants.com
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: << 何も入れない!!
An optional company name []: << 何も入れない!!
手順3
// RapidSSL社に送って公開鍵(public key)を得る
server.csr の内容をコピーします。
CSRをRapidSSLに送るとメールが届くので、 RapidSSLMail.txtに保存しておく。
RapidSSL社からのメールの公開鍵部分をRapidSSL.crt として保存する。
RapidSSL社からのメールの中にある、再発行セルフサービスのリンクに、
SSL証明書や、中間証明書、SSL証明書・中間証明書結合版があります。
手順4
SSL証明書・中間証明書結合版をコピペして、server.crt として保存する。
手順5
heroku certs:update server.crt server.key –app cloud-garden2
Resolving trust chain… done
! WARNING: Potentially Destructive Action
! This command will change the certificate of endpoint shiga-3514.herokussl.com on cloud-garden2.
! To proceed, type “cloud-garden2” or re-run this command with –confirm cloud-garden2
> cloud-garden2
Updating SSL Endpoint shiga-3514.herokussl.com for cloud-garden2… done
Updated certificate details:
Common Name(s): cloud-garden.com
www.cloud-garden.com
Expires At: 2018-10-07 23:59 UTC
Issuer: /C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA
Starts At: 2016-08-17 00:00 UTC
Subject: /CN=www.cloud-garden.com
SSL certificate is verified by a root authority.
成功!!