さくらのレンタルサーバーでSSL証明書を更新

HTTPS

2017年8月10日時点、StartComのSSL証明書は主要ブラウザで証明書を無効化されており通用しません。詳しくはStartSSLのSSL証明書が使えないをご覧ください。

さくらのレンタルサーバーのSSL証明書の更新作業。手順としては下記のようになります。SSL証明書の発行はStartSSLを利用している場合です。

証明書要求ファイル(CSR)の作成

  1. さくらのレンタルサーバー」上でもCSRファイルを(簡単に)作成することができます。ここではOpenSSLのコマンドラインを使って作成する方法を説明しています。

  2. 下記コマンドで、StartSSLでSSLサーバー証明書を作成するのに必要な証明書要求ファイルを作成を開始できます。「yourname.key」が秘密鍵、「yourname.csr」が証明書要求ファイルとなります。

    openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr
  3. PEMパスフレーズを聞いてくるので、パスフレーズを入力します。パスフレーズは好きな文字列を指定できますが10文字以上にするのが良いようです(文字数が短いと短時間に解読されてしまいます)。

    Generating a 2048 bit RSA private key
    .................................+++
    .+++
    writing new private key to 'yourname.key'
    [Enter PEM pass phrase: 
  4. PEMパスフレーズの確認入力を聞いてくるので、再度パスフレーズを入力します。このパスフレーズは後ほど利用する場合があるので保管しておきましょう。

    [Verifying - Enter PEM pass phrase: 
  5. 国名コードを聞いてくるので、日本を意味する「JP」を入力します。

    Country Name (2 letter code) [AU]: JP
  6. 都道府県名を聞いてくるので入力します(例: Osaka)。

    State or Province Name (full name) [Some-State]:Osaka
  7. 市区町村名を聞いてくるので入力します(例: Osaka)。

    Locality Name (eg, city) []:Osaka
  8. 組織名を聞いてくるので必要であれば入力します。入力しない場合はそのままReturnキーを押して次へ。

    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
  9. 部署名を聞いてくるので入力します。入力しない場合はそのままReturnキーを押して次へ

    Orgnizational Unit Name (eg, section) []:
  10. サーバー名を聞いてくるので入力します。SSL証明書を発行したいドメイン名を入力します。(例:www.example.com)。

    Common Name (e.g. server FQDN or YOUR name) []: www.example.com
  11. メールアドレスを聞いてくるので指定します。入力しない場合はそのままReturnキーを押して次へ。

    Email Address[]:
  12. 証明書を破棄するときのパスワードを指定します。一般的には入力しないようです。

    Please enter the Following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
  13. 会社名を指定します。これも一般的には入力しないようです。

    An optional company name []:
  14. 以上で証明書要求ファイル(CSR)の作成処理は完了です。「yourname.key」が秘密鍵、「yourname.csr」が証明書要求ファイル(CSR)になります。

PEMパスフレーズを取り除く

  1. さくらのレンタルサーバー」で秘密鍵をアップロードする場合、PEMパスフレーズが取り除かれている秘密鍵である必要ががあります。PEMパスフレーズが含まれている場合「秘密鍵が間違っています」というメッセージが表示されアップロードすることができません。
    秘密鍵が間違っています

  2. PEMパスフレーズを取り除くコマンドを実行します。

    openssl rsa -in yourname.key -out yourname-decrypt.key
  3. 証明書要求ファイル(CSR)を作成するときに入力したPEMパスフレーズを聞いてくるので、入力します。

    [Enter pass phrase for yourname.key: 
  4. 入力して間違いがなければ、PEMパスフレーズが取り除かれた秘密鍵(yourname-decrypt.key)が作成されます。

    writing RSA key 

StartSSLでSSL証明書を更新(発行)する

  1. StartSSLを利用して、無料のSSL証明書を発行します。以前に対象ドメインのSSL証明証を発行した際に登録したメールアドレスが必須です。

  2. StartSSLに行き、Start Now forFree SSL Certificateをクリックする。
    StartSSLのホームページ

  3. Authenicateをクリックする。この時クライアント証明書がインストールされていない場合「400 Bad Request」と表示されログインできない。その時はAuthenicateの下にある「Lost authentication certificate?」をクリックし登録してあるメールアドレスを入力するとパスワードが送られてくる。そのパスワードを入力するとクライアント証明書をダウンロードできるようになるのでインストールする。
    StartSSL の認証

  4. SSL証明書を発行したいので、Certificates Wizardをクリックします。
    Certificates Wizard

  5. SSL証明書を発行するので、Web Server SSL/TLS CerificateにチェックをいれてContinueをクリックします。
    Certificates Wizard

  6. SSL証明書を発行したいドメインを「Please enter the full hostname for SSL certificate (e.g: mail.domain.com):」のテキストボックスに入力します。マルチドメイン機能(SANs)を利用する場合はカンマ区切りで入力することも可能です。
    コモンネームの入力

  7. 次に証明書要求ファイルをアップロードするので、Generated by Myself (.cer PEM format certifcate)にチェックを入れます。するとテキストボックスが表示されるので、先ほど作成した証明書要求ファイル(CSR)の内容を貼り付けます。そしてsubmitをクリックします。
    証明書要求テキストの入力と送信

  8. SSL証明書が作成された場合は下記のような画面が表示されますので、Certificate Listをクリックします。
    SSL証明書作成完了

  9. 作成されたSSL証明書は、作成した日(今日)から一年間有効です(ここでは2016年5月20日に作成していますので2017年5月20日まで有効)。対象のSSLのRetrieveをクリックして、「www」というZIPファイルをダウンロードしておきます。このファイルの中にSSL証明書や中間証明書などが入っています。
    SSL証明書のダウンロード

「さくらのレンタルサーバー」にSSL証明書を更新する

  1. さくらのレンタルサーバー」のコントールパネルにログインして、ドメイン設定をクリックする。
    さくらのレンタルサーバーのコントロールパネル

  2. ドメイン一覧が表示されるので、SSL証明書をインストールしているドメインの更新をクリックする。
    さくらのレンタルサーバーのコントロールパネルのドメイン一覧

  3. 秘密鍵を含む新しい設定の作成をクリックします。
    秘密鍵を含む新しい設定の作成

  4. 「秘密鍵を既にお持ちの場合には、アップロードしてください。」のファイルを選択をクリックして、PEMパスフレーズなしの秘密鍵ファイルを選択して、秘密鍵をアップロードするをクリックしてください。
    秘密鍵のアップロード

  5. 次にSSL証明書を指定します。ダウンロードしておいた「www」ZIPを解凍し、さらにその中にある「OtherServer」ZIPも解凍し、頭に「2_」がついた拡張子がcrtの(例:2_www.example.com.crt)ファイルをテキストエディターなどで開いて、内容をコピーします。そして「証明書のインストール」のテキストボックスに貼り付けます。そして、送信をクリックします。
    証明書のアップロード

  6. SSL証明書が問題なく送信できると送信証明書の情報が表示されます。表示された内容に問題がなければ次に中間証明書をインストールしますので、中間証明書のインストールをクリックします。
    中間証明書のインストール

  7. ダウンロードしておいた「www」ZIPを解凍し、さらにその中にある「OtherServer」ZIPも解凍し、「1_Intermediate.crt」ファイルをテキストエディターなどで開いて、内容をコピーします。そして「中間証明書のインストール」のテキストボックスに貼り付けます。そして、送信をクリックします。
    中間証明書のアップロード

  8. 中間証明書が問題なく送信できると中間証明書の情報が表示されます。表示された内容に問題がなければ、アップロードしたSSL証明書及び中間証明書を有効化します。有効化の確認チェックボックスにチェックを入れて、新しい設定を有効化するをクリックします。
    証明書の有効化

  9. 証明書の情報が更新されているか確認し、証明書の内容に問題がなければ「さくらのレンタルサーバー」でのSSL証明書更新作業は完了です。
    証明書の更新完了

SSL証明書関連の覚え書き

  • 用語

    マルチドメイン証明書(SANs: Subject Alternative Names)

    1つの証明書で複数のドメインをSSL保護することができる機能。その証明書に追加したドメインのみSSL保護できる。

    証明書要求ファイル作成時のコモンネームには1つだけ指定し、証明書を発行(認証局での)するときに追加のコモンネームを指定することになります。同じような機能として「ワイルドカード証明書」がある。StartSSLでは5つまで登録できます。

    ワイルドカード証明書

    コモンネームにワイルドカード(*)を使用するので、全てのサブドメインをSSL保護できる。

    証明書要求ファイル作成時のコモンネームはワイルドカードで入力する必要があります。同じような機能として「マルチドメイン証明書」がある。

    コモンネーム(CN: Common Name)

    SSL保護するURL(FQDN)。証明書要求ファイル(CSR)を作成する時に入力します。当店であれば「pizza.lan」。Webページとして公開するアドレス(ブラウザに入力するアドレス)と一致している必要があります。

    認証局によっては、コモンネームに wwwをつけると、wwwあり・なしの両方に自動でSSL保護対象となる場合があります(例:www.example.comであれば、www.example.comと、example.comの2つに対応)。

    StartSSLはwwwを付けても自動では保護対象とはなりませんが、最大5つのホスト名登録できるので、wwwあり・なしで登録しておけばを利用できます。

    PEM

    Base64でエンコードされたデータ。証明書の場合はX.509のデータをBase64でエンコードしたテキストとなります。

    PEMパスフレーズは秘密鍵自体をこのPEMパスフレーズを使って暗号化したもの。ただしサーバー側で秘密鍵を使用するためにはこのPEMパスフレーズが必要となるので、サーバーによってはPEMパスフレーズによる暗号化を解除したもの(秘密鍵そのもの)を指定しなければならない場合がある。

  • 入力可能文字

    CSRを作成する時にコモンネームなどの情報(ディスティングイッシュネーム: Distinguished Name)で入力できる文字。

    英数字 A~Z a~z 0~9
    記号 ‘ – , = / ( ) . : + – ? (スペース)
  • 証明書関連の代表的な拡張子と内容

    内容 拡張子
    秘密鍵ファイル。ファイルの内容は下記のような文字列から始まって終わります。

    —–BEGIN RSA PRIVATE KEY—–
    (本文)
    —–END RSA PRIVATE KEY—–
    key
    署名要求ファイル(CSR: Certificate Signing Request)。秘密鍵の一部情報とその秘密鍵に対応する公開鍵の情報、コモンネームなどの情報(ディスティングイッシュネーム:Distinguished Name)が含まれているファイル。

    —–BEGIN CERTIFICATE REQUEST—–
    (本文)
    —–END CERTIFICATE REQUEST—–
    csr
    サーバー証明書(CRT: CeRtificate)。公開鍵と認証局の署名が含まれている。

    —–BEGIN CERTIFICATE —–
    (本文)
    —–END CERTIFICATE—–
    crt
    中間CA証明書(Intermediate Certificate)。

    —–BEGIN CERTIFICATE —–
    (本文)
    —–END CERTIFICATE—–