SSL設定しようとして諦めた話
2016.01.04 Mon
あけましておめでとうございます。
このブログがいつ消えるかは僕のやる気次第ですよろしくお願いいたします。
この前取得したドメインでwebサーバを建てました。→ poyo.info
そして正月の暇な気分に任せてStartSSLでSSL証明書を発行し、https対応してやろうと血迷ったのが昨日の夜です。
結果的に言うと諦めました。なんで諦めたかは後で書きます。とりあえずやり方だけ書いていきます。
最初にググってあちこちのサイトを見てから始めたのですが、結論から言うとStartSSLの仕様が大きく変わっており、一部大きく異る操作を行うこととなりました。
これまでは緑を基調とした比較的ポップなサイトでしたが、2016/1/4現在は水色が基調のはやりのフラットデザインを採用しています(所々前からの使い回しと思われる画像もあります
手順としてはだいたい以下のとおりです
1. StartSSLにSign-up
2. domain validation
3. Free SSL Certificateを発行
4. 秘密鍵、公開鍵、その他をnginxに読み込ませる
1. Sign-up
StartSSLにアクセスし、トップページの"Start Now for Free SSL Centrificate"をクリックします。
するとSign-upかAuthenticateが選択できるのでSign-upに進みます。
以前はここで住所、年齢、氏名等を入力する画面が出ましたが、今は国を選択しメールアドレスを入力してValification codeを発行してもらうだけです。
前はこれでIdentity Validationが完了していたっぽい?んですが現在はもう少し厳しくなってました。ログイン後の画面で3つあるタブのうち一番右、Validations Wizardを選択するとdomain, email, Personal Identity, OtherのValidationが選択できます。このうちemailは最初のSign-upで完了しており、Personal Identityを選択すると以下の画面が出ます。

Class2以上のSSL証明書が必要な場合はこちらの認証が必要ですが、Class1には必要ありません。
2. domain validation
一番上のdomain validationを選択しcontinue。top level domain(www.poyo.infoならpoyo.info)を入力する画面が出ますので、ここに入力すると以下の画面が出ます。

使っているdomain宛のメールアドレスを受信できる状態にする必要があります。またはWhois代理公開をしている場合、そのコンタクト情報を正しく入力しておく必要があります。僕はどっちもしておきました。
送られてきたメールに書いてあるコードを入力し、validationを終えます。
このとき意外とメールが来るのが遅いことがあるようです。最初のメールが5分以上遅延して送られてきました。
3. Free SSL Certificate
Certificates Wizardタブを選択し、今回はwebサーバに用いるので”Web Server SSL/TLS Certificates”を選択してcontinueします。

www.poyo.infoなどと入力し、秘密鍵のパスワードを設定します。10~32文字の英数字混合のパスが求められます。
次のページで秘密鍵が表示されるのでコピーして保存します。
このとき、絶対Download Private Keyを押して手元に残しておくことをおすすめします。(後からわからなくなると確認するすべがない
次は公開鍵を手に入れるのですが、時間かかります。Tool Boxタブを選択し、Certificate Listを選択すると以下の様な表が出ます。
Private Keyを手に入れてすぐの時はStatusがPending issuedになっているのでこの状態になるまで待ちます。メールに寄る通知などは来なかったです。僕はここで一旦切り上げて寝ました。朝起きたら以下のとおり↓

右のRetrieveボタンを押すと公開鍵をダウンロードすることができます。
ご丁寧にzipで固めてあり、開くとApache、IIS、Nginx、Other用にそれぞれzipがあるので適宜使ってください。
ここまで来たらようやくStartSSLから離れられます。
適当に使ってるwebサーバに鍵を転送します。(公開鍵→startssl.crt、秘密鍵→startssl.key)
適当にフォルダを決めて
パーミッションの変更
Apacheには中間証明書を指定するところがあり、Nginxにはありません。Nginxではサーバ証明書にくっつけてしまえば勝手にやってくれるらしいです(それでいいのか…
現在、StartSSLで作成してきた秘密鍵にはパスフレーズが設定されています。これをそのままnginxに読み込ませると、nginxを起動する度にパスフレーズが求められて面倒です。外してしまいます。
no start lineとエラーが出ています。僕は察しました。「アッ、貼り付けるときに一行目がバグったな」
-----BEGIN RSA PRIVATE KEY-----を追加し、再度実行。
もういいや…毎回パスフレーズ入れよ…
「公開鍵と秘密鍵、合ってるか確かめときたいな」と思い
ググっても全然わからず。
ここで心折れて辞めました。メンタルが弱いんです。
気が向いたらまたやります。
Tweet
このブログがいつ消えるかは僕のやる気次第ですよろしくお願いいたします。
この前取得したドメインでwebサーバを建てました。→ poyo.info
そして正月の暇な気分に任せてStartSSLでSSL証明書を発行し、https対応してやろうと血迷ったのが昨日の夜です。
結果的に言うと諦めました。なんで諦めたかは後で書きます。とりあえずやり方だけ書いていきます。
最初にググってあちこちのサイトを見てから始めたのですが、結論から言うとStartSSLの仕様が大きく変わっており、一部大きく異る操作を行うこととなりました。
これまでは緑を基調とした比較的ポップなサイトでしたが、2016/1/4現在は水色が基調のはやりのフラットデザインを採用しています(所々前からの使い回しと思われる画像もあります
手順としてはだいたい以下のとおりです
1. StartSSLにSign-up
2. domain validation
3. Free SSL Certificateを発行
4. 秘密鍵、公開鍵、その他をnginxに読み込ませる
1. Sign-up
StartSSLにアクセスし、トップページの"Start Now for Free SSL Centrificate"をクリックします。
するとSign-upかAuthenticateが選択できるのでSign-upに進みます。
以前はここで住所、年齢、氏名等を入力する画面が出ましたが、今は国を選択しメールアドレスを入力してValification codeを発行してもらうだけです。
前はこれでIdentity Validationが完了していたっぽい?んですが現在はもう少し厳しくなってました。ログイン後の画面で3つあるタブのうち一番右、Validations Wizardを選択するとdomain, email, Personal Identity, OtherのValidationが選択できます。このうちemailは最初のSign-upで完了しており、Personal Identityを選択すると以下の画面が出ます。

Class2以上のSSL証明書が必要な場合はこちらの認証が必要ですが、Class1には必要ありません。
2. domain validation
一番上のdomain validationを選択しcontinue。top level domain(www.poyo.infoならpoyo.info)を入力する画面が出ますので、ここに入力すると以下の画面が出ます。

使っているdomain宛のメールアドレスを受信できる状態にする必要があります。またはWhois代理公開をしている場合、そのコンタクト情報を正しく入力しておく必要があります。僕はどっちもしておきました。
送られてきたメールに書いてあるコードを入力し、validationを終えます。
このとき意外とメールが来るのが遅いことがあるようです。最初のメールが5分以上遅延して送られてきました。
3. Free SSL Certificate
Certificates Wizardタブを選択し、今回はwebサーバに用いるので”Web Server SSL/TLS Certificates”を選択してcontinueします。

www.poyo.infoなどと入力し、秘密鍵のパスワードを設定します。10~32文字の英数字混合のパスが求められます。
次のページで秘密鍵が表示されるのでコピーして保存します。
このとき、絶対Download Private Keyを押して手元に残しておくことをおすすめします。(後からわからなくなると確認するすべがない
次は公開鍵を手に入れるのですが、時間かかります。Tool Boxタブを選択し、Certificate Listを選択すると以下の様な表が出ます。
Private Keyを手に入れてすぐの時はStatusがPending issuedになっているのでこの状態になるまで待ちます。メールに寄る通知などは来なかったです。僕はここで一旦切り上げて寝ました。朝起きたら以下のとおり↓

右のRetrieveボタンを押すと公開鍵をダウンロードすることができます。
ご丁寧にzipで固めてあり、開くとApache、IIS、Nginx、Other用にそれぞれzipがあるので適宜使ってください。
ここまで来たらようやくStartSSLから離れられます。
適当に使ってるwebサーバに鍵を転送します。(公開鍵→startssl.crt、秘密鍵→startssl.key)
適当にフォルダを決めて
$ wget https://www.startssl.com/certs/ca.pemこいつらを落としてきます。
$ wget https://www.startssl.com/certs/sub.class1.server.ca.pem
パーミッションの変更
$ chmod 400 startssl.crt startssl.key ca.pem sub.class1.server.ca.pem
Apacheには中間証明書を指定するところがあり、Nginxにはありません。Nginxではサーバ証明書にくっつけてしまえば勝手にやってくれるらしいです(それでいいのか…
$ cat sub.class1.server.ca.pem >> startssl.crt
現在、StartSSLで作成してきた秘密鍵にはパスフレーズが設定されています。これをそのままnginxに読み込ませると、nginxを起動する度にパスフレーズが求められて面倒です。外してしまいます。
$ openssl rsa -in startssl.key -out startssl_nopass.keyアレ…
unable to load Private Key
1996223696:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:
no start lineとエラーが出ています。僕は察しました。「アッ、貼り付けるときに一行目がバグったな」
-----BEGIN RSA PRIVATE KEY-----を追加し、再度実行。
$ openssl rsa -in startssl.key -out startssl_nopass.keyファ!?
unable to load Private Key
1995896016:error:0906D064:PEM routines:PEM_read_bio:bad base64 decode:pem_lib.c:818:
もういいや…毎回パスフレーズ入れよ…
「公開鍵と秘密鍵、合ってるか確かめときたいな」と思い
$ openssl x509 -in startssl.crt -modulus -nooutしたのですが
$ openssl x509 -in startssl.crt -noout -modulusアアアアッ…なんだこれは…
unable to load certificate
1995597008:error:0906D064:PEM routines:PEM_read_bio:bad base64 decode:pem_lib.c:818:
ググっても全然わからず。
ここで心折れて辞めました。メンタルが弱いんです。
気が向いたらまたやります。
カテゴリー:RaspberryPi
Tweet