サーバを変更したらSSLサーバ証明書は取り直しが必要なのか?

※この記事にはプロモーションが含まれています。

サーバを変更/リプレイスする際、今使っているサーバ証明書ってどうなっちゃうのでしょうか?

サーバを変更したらSSLサーバ証明書は取り直す必要があるのでしょうか?

ssl

普通は証明書も移行して使えますが、出来ない場合もあるので注意が必要です

運用中のサーバを変更/リプレイスすることがあると思います。

サーバ変更の主な理由は以下のようなものでしょう。

  • サーバ老朽化による変更
  • サーバ管理会社変更による変更
  • ホスティング会社の変更による変更
  • サーバクラッシュによる変更

その際にSSLサーバ証明書は新しいサーバ用に取り直しをしなければならないのか、という疑問が湧きます。

違う環境でSSLサーバ証明書を使うためのポイント

SSLサーバ証明書というのは、秘密鍵と公開鍵というキーペアファイルで構成されています。

ここでの公開鍵とはSSLサーバ証明書になるのですが、この公開鍵はWebサイトにアクセスができれば誰でも入手することが出来ます。

よって、ポイントは秘密鍵があるかないか、ということになります。

SSLサーバ証明書は取得しなおす必要があるのか?

ということで、SSLサーバ証明書を取得しなおす必要があるのか、無いのか、という話は秘密鍵を移行出来るか、できないか、がポイントになってきます。

現在のサーバや旧サーバから秘密鍵のバックアップができていれば、違うサーバでも使うことが出来ることになります。

普通は秘密鍵だけでなく、公開鍵(SSLサーバ証明書)側も合わせてバックアップ取っておくことになると思います。いわゆるキーペアのバックアップです。

サーバの固有の情報とかがサーバ証明書に含まれているのでは?

SSLサーバ証明書にはサーバ自体の固有の情報は含まれていません。

例えば、

  • MACアドレス
  • サーバ名
  • 何かのシリアル番号
  • グローバルIPアドレス

などです。

よって、サイトのURL(FQDN)に変更が無ければそのまま利用できることになります。

サンプルとして、シマンテック(旧ベリサイン)の証明書を解析してみました。

サーバ固有の情報が含まれていないことが分かると思います。

Certificate:
Data:
Version: 3 (0x2)
Serial Number:
43:97:01:08:c4:a9:bd:1f:ac:9a:17:e2:58:20:82:fd
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 EV SSL CA – G3
Validity
Not Before: Jul 10 00:00:00 2014 GMT
Not After : Jul  9 23:59:59 2016 GMT
Subject: 1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/2.5.4.15=Private Organization/serialNumber=2158113, C=US/postalCode=94043, ST=California, L=Mountain View/streetAddress=350 Ellis Street, O=Symantec Corporation, OU=Symantec Japan, Inc., CN=www.verisign.co.jp
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:www.verisign.co.jp
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Certificate Policies:
Policy: 2.16.840.1.113733.1.7.23.6
CPS: https://d.symcb.com/cps
User Notice:
Explicit Text: https://d.symcb.com/rpa
X509v3 Authority Key Identifier:
keyid:01:59:AB:E7:DD:3A:0B:59:A6:64:63:D6:CF:20:07:57:D5:91:E7:6A
X509v3 CRL Distribution Points:
URI:http://sr.symcb.com/sr.crl
Authority Information Access:
OCSP – URI:http://sr.symcd.com
CA Issuers – URI:http://sr.symcb.com/sr.crt

どうやって新しいサーバで使うのか?

では、実際にどのようにして新しいサーバに適用するのか、ですが、これは利用しているサービスやサーバによって違います、としか言いようがないです。

とは言っても、よくあるApacheやMicrosoftのIISであれば割と簡単に出来るのでご紹介しておきますね。

Apacheの場合のSSLサーバ証明書の移行の方法

  • 秘密鍵ファイル:.pemとか、.pvkとかで保存している?
  • 中間証明書ファイル:.cerとか、.crtとかで保存している?
  • サーバ証明書ファイル:.cerとか、.crtとかで保存している?

この3つのファイルをコピーして、USBとかに入れて新しいサーバの好きなディレクトリへおいてください。

あとは、新規や更新の設定時と同様にssl.confとか、httpd-ssl.confとかでファイルのパスを通してあげれば良いです。

Microsoft IISの場合のSSLサーバ証明書の移行の方法

IISの場合は、pfx形式(秘密鍵と公開鍵がセットの形式)でエクスポートが出来ます。

そして、それをそのままインポートすることが出来るので、非常に簡単です。

でも、中間証明書についてちょっと注意が必要で、エクスポート時に含めてエクスポートしていない場合は、後から中間証明書を入れる必要があります。

シマンテックのサイトに後から中間証明書を入れる方法が紹介されているのでリンクしておきますね。

Microsoft IIS 中間CA証明書のインポート手順
https://knowledge.digicert.com/ja/jp/solution/SO23601.html

 

レンタルサーバでもSSLサーバ証明書は移行できるの?

レンタルサーバの場合ですが、こればっかりはレンタルサーバ会社のポリシーになるので、なんとも言えないですね。

レンタルサーバ会社によっては、他社からの持ち込みにも対応していますが、そもそも移行元からエクスポートができないんじゃどうしようも無いです。

契約時からサーバ移管の事を考えている人も少ないと思いますが、もしも、移管する可能性があるのであれば、サーバ契約時からエクスポートができるかについて事前に確認しておいてもよいかも
しれませんね。

何社か見てみたのでまとめますね。

  • さくらインターネット:インポート、エクスポートOK
  • X Server :インポート、エクスポートNG
  • ロリポップ :インポート、エクスポートNG
  • WebARENA:インポート、エクスポートNG

ざっと見たところ、さくら以外はNGですね。

意外に結構ダメなんです。

でも、移行できないから、と諦めずに、もし自分で証明書を取得していたら、証明書ベンダーに聞いてみることをお勧めします。

証明書ベンダーによっては、無料で再発行できるサービスがある場合もあります。

再発行が出来るのであれば、新しいサーバ側でCSRを作って新しい証明書を取得すれば設定が出来るケースもあります。

コメント