秘密鍵は削除したらダメ?!SSL化に必要なファイルの種類を詳しく解説 | SSLサーバー証明書ならさくらインターネット

秘密鍵は削除したらダメ?!SSL化に必要なファイルの種類を詳しく解説

SSL証明書を購入しようと申し込みを進めていると、CSRやサーバー証明書、秘密鍵など見慣れないワードがたくさん出てきます。実際、これらが何のために存在しているのかわからないまま、SSL証明書を利用している方も多いのではないでしょうか。そんな方のために今回はSSL化に必要なファイルに絞って詳しく説明します。

SSL化する際に登場するファイル

SSL全体については、こちらの過去記事「SSLって何?意味や仕組みをわかりやすく解説!」で説明していますので、未読の方は先に一読されるとより理解が深まります。

ウェブサイトで暗号化通信を行うにあたって様々なファイルが登場しますが、それぞれどのような役割を担っているのかきちんと把握していない方も多いと思います。SSL化の作業に慣れているはずの人でも、うっかりSSLサーバー証明書(以下、SSL証明書)と中間CA証明書を間違えたり、SSL証明書を入れるべきところに秘密鍵を入れてしまったりと、思わぬ作業ミスにより事故が起きたりするものです。それぞれのファイルの役割をしっかり理解して作業ミスを減らしましょう。

秘密鍵

秘密鍵は暗号化通信を行う上で非常に重要なファイルですが、認証局もSSL証明書の販売サイトも秘密鍵を保持していないため、紛失/削除してしまうと二度と同じものを作ることができません。

なぜ重要なファイルなのかと言うと、秘密鍵がなければ暗号化したデータの復号(元のデータに復元すること)ができないからです。例えば、キャッシュカードの暗証番号を忘れるとATMからお金が下ろせなくなるのと同じように、秘密鍵を紛失するとブラウザ側(サイト利用者側)で暗号化されたデータが、サーバー側(サイト運営者側)で復号できなくなるため、その秘密鍵を利用して発行されたSSL証明書は利用できなくなります。もちろん、銀行の暗証番号やウェブサービスのパスワードのように規定の手順でリセットしてもらい、再びパスワードを設定することはできます。秘密鍵を削除/紛失した場合は、CSRと秘密鍵を新たに生成してSSL証明書の再発行手続きを行う必要があります。

秘密鍵はSSL証明書が有効な限り、流出する可能性を極力排除した場所に保管して慎重に取り扱いましょう。特にレンタルサーバーの簡単インストール機能を使うと、秘密鍵などを意識しなくてもSSL証明書の設定ができてしまうため、「秘密鍵がレンタルサーバー上にしか存在しない」という状態に気づかない人も多く見受けられます。この状態でレンタルサーバーの引越しをするためにサーバーを解約してしまうと、同時に秘密鍵も消えてしまうので注意しましょう。

さくらのレンタルサーバでは秘密鍵のダウンロードが可能なため、他社サーバーへ引越しする場合もそのままSSL証明書を持ち出すことができます。ただし、引越し先がインポートに対応しているかどうかについては、引越し先のサーバー仕様によって変わるため、事前に確認しておく必要があります。(最近はインポートできないレンタルサーバーサービスも多いです)

なお、秘密鍵はテキストファイルで、以下のフレーズで始まります。

-----BEGIN RSA PRIVATE KEY-----

秘密鍵はパスフレーズを付けて生成することもできます。パスフレーズ付きの秘密鍵は、利用時に毎回パスフレーズを入力する必要があります。実際に利用する際は、パスフレーズを解除した生の秘密鍵を使うのが一般的です。

乱数ファイル

乱数ファイルは秘密鍵を生成する際に必要となる”場合がある”ファイルです。認証局によっては、乱数ファイルを申請者自身で用意させる場合と、用意せずにOpenSSLで処理してもらう場合があり、どちらが良いとも悪いとも言えません(乱数の話は長くなるので割愛します)。また、さくらのレンタルサーバを利用する場合はコントロールパネル上でCSRと秘密鍵が生成されるため、気にしなくても問題無いファイルです。

サーバー証明書

サーバー証明書はSSL証明書、エンドエンティティ証明書などと呼ばれており、CSRを用いてサーバー証明書の発行を申請すると、認証後に認証局から発行されるファイルのことです。こちらも暗号化通信には必要不可欠なファイルですが、公開しても差し支えない(そもそも公開される前提)ため、現在でもメールなどで気軽にサーバー証明書を送付している販売サイトもあります。

サーバー証明書は、開いてみるとランダムな文字列が記載されているため、「何かの秘密情報かな?」と思ってしまいそうですが、実は誰でもブラウザからダウンロードできる”公開される前提”のファイルです。誤って削除・紛失してしまった場合でもCSRと秘密鍵があれば再発行することが可能です。再発行した場合、シリアル番号などは変わってしまうため、厳密に言えば違うサーバー証明書が発行されますが、コモンネームや有効期間は同じであり、秘密鍵も同じものを使うことができます。逆にペアとなる秘密鍵が無ければ、”秘密鍵”の項目で説明したようにサーバー証明書は利用できません。また、再発行は販売サイト側の対応となるため、どこでも再発行できるわけではありません。

サーバー証明書と秘密鍵は、必ず生成時のCSRを介してセットになっています。この部分がとても重要ですので、ぜひ覚えておいてください。

なお、サーバー証明書はテキストファイルで、以下のフレーズで始まります。

-----BEGIN CERTIFICATE-----

中間CA証明書

中間CA証明書(以下、中間証明書)はサーバー証明書と同じようなもので、認証局(CA)の正当性を証明するファイルのことです。以下のようにルート証明書とサーバー証明書の間に位置し、各々に紐づいています。

「証明書のパス」の画面例

現在販売されているサーバー証明書は、基本的に中間証明書とセットでサーバーへ設定する必要があり、中間証明書は1枚、または2枚の場合があります。

ウェブサーバーの種類にもよりますが、基本的にサーバー証明書と中間証明書は結合してサーバーに設定します。設定する際、サーバー証明書→中間証明書→中間証明書の順に記述するのが一般的です。中間証明書に関連する設定ミスの中で多いのが、「中間証明書の設定し忘れ」と「間違ってサーバー証明書を設定する」の2つです。

中間証明書を設定し忘れた場合でも、勝手にブラウザが中間証明書をダウンロードし、サイトが閲覧できてしまう場合があります。サーバー証明書と同様に中間証明書も公開情報であるため、このような機能が備わっているブラウザも存在します。ただし、一部のサーバー証明書やブラウザは、中間証明書の自動ダウンロード機能に対応していません。そのため、”中間証明書は必ず設定しなければいけないもの”と覚えておいた方がよいでしょう。

また、間違ってサーバー証明書を2箇所設定したり、古い(もしくは異なる)中間証明書を設定したりする場合もあります。例えば、2020年5月末まで有効期限を持つサーバー証明書に、2019年5月末まで有効期限を持つ中間証明書を紐づけた場合、先に中間証明書の有効期限が切れてしまいます。中間証明書の有効期限が切れた後は、サイトが閲覧できなくなっている可能性があり、さらにSSL証明書を監視していても検知されない場合もあります。中間証明書を設定する際には、最新の中間証明書をダウンロードして設定するようにしましょう。

中間証明書のトラブルはSSLチェッカーで事前に確認して防ぐことができるので、SSL証明書の設定後はSSLチェッカーでサイトを確認する癖をつけましょう。

クロスルート証明書

クロスルート証明書とは、一部の古い端末やブラウザでも暗号化通信を可能にするために、普段利用しているルート証明書とは別のルート証明書へ関連付けられた中間証明書です。設定方法は中間証明書と同じです。

SSL証明書のトラブルでよくあるのが、「手元の最新端末では確認したけど、ちょっと古い端末では確認していなかったため、実は多くのユーザがサイトにアクセスできていないことに気づかなかった」という事象です。最新の端末と古い端末で利用しているルート証明書が異なる場合に発生しますが、検出は難しいので複数の環境で接続を試行してくれるSSLチェッカーを利用しましょう。

「sslチェッカー」の画面例

このように様々なブラウザのバージョンで接続をシミュレーションしてくれます。なお、問題がある場合はエラーが表示されます。自分がいつも利用している環境で問題が無くても、別のOSやブラウザで接続すると証明書エラーが起きている可能性があるため、SSLを設定したら忘れずにSSLチェッカーで確認することを覚えておきましょう。

「サイトが見えている」だけで確認を終わらせない

秘密鍵やサーバー証明書、中間証明書、クロスルート証明書など、SSLの設定には紛らわしいファイルがたくさんあり、目で見てパッと「OK!」と言えないところが事態をややこしくしています。しかし、正常に設定することができなくても、SSLチェッカーを利用することでエラーを確認することができます。「自分のブラウザで見えているから大丈夫!」と確認を終わらせずに、必ずSSLチェッカーを使って確認しましょう。

最後に

さて、今回はSSLを導入するにあたって登場するファイルについてご紹介しました。それぞれの用途について、理解は深まったでしょうか。「難しくて今一つわからなかった」という方は、秘密鍵は削除/紛失しないこと、中間証明書は忘れずに設定すること、設定完了後はSSLチェッカーを利用して確認すること、この3つだけは大事なことなので覚えておきましょう。

最終更新日:2019.2.5