Let's Encryptから発行された証明書を利用する場合、証明書を導入する機器より
専用のツールを実行して証明書を受け取ります。
その際、httpによるコンテンツの確認を実施するため、利用する構成次第では少々厄介です。
WindowsやLinuxで利用するWebサーバであればツールをダウンロードして実行することが
比較的容易にできるのですが、仮想アプライアンスやハードウェアで証明書を利用するには
専用のツールを利用できないばかりか、そもそもコンソールが利用できないケースもあります。
そこで考えるのが「別環境で作成した証明書をインポートして使いたい」と。
とりあえずうまく発行できたので少し手順をまとめてみることにします。
1.インターネットから接続できるセグメント(DMZかな)にIISを用意する。
一番お手軽で誰でも比較的容易に操作できます。
「インターネットインフォメーションサービス(IIS)マネージャ」を起動し、[サイト]にある
初期状態では「Default Web Site」を選択し、右ペインの「バインド」を開きます。
HTTPで待ち受ける設定がデフォルトで作成されていますが、「ホスト名」が空白です。
「ホスト名」に発行するサーバのFQDNを入力します。
2.DNSに先ほどのFQDNを登録し、http://fqdn/でに接続確認
DNSへ先ほどのFQDNとIPアドレスを登録しfqdnでアクセスできるのかを確認します。
IISのデフォルト画面が表示されれば準備はほぼ完了です。
3.専用ツールのダウンロード
Windows版のツールをダウンロードします。今回はwin-acmeを利用します。
下記のURLよりダウンロードし、適当なフォルダに展開してください。
https://www.win-acme.com/
4.設定ファイルの編集
設定ファイルを編集せずに実行するとプライベートキーがエクスポートできず、
他の機器では利用できません。
settings_default.jsonをコピーしsettings.jsonを作成してください。
作成したらメモ帳などで編集します。
49行目あたりから「"Security": {」で始まる行があります。
このセクションでキー長やプライベートキーのエクスポートの設定を行います。
デフォルトでは「"PrivateKeyExportable": false,
」と設定されているので
プライベートキーのエクスポートができません。
この行を「"PrivateKeyExportable": true,
」に変更します。
キー長は3072に設定されているので適時変更します。
5.プログラムの実行
先ほどダウンロードしたwin-acmeを実行し、証明書Let's Encryptより発行してもらいます。
その際、IISで設定したFQDNへはhttpでの通信が必要になるのでhttpで通信できるように
FireWall等の設定を行っておいてください。
6.発行された証明書のエクスポート
IISよりサーバ証明書を確認するとLet's Encryptより証明書が発行されています。
この証明書を「秘密鍵」付きでエクスポートし、利用したい機器に導入します。
◆最後に
この証明書ですが、90日毎に更新する必要があり、定期的に手動で更新して証明書の
再登録を行う必要があります。
永続的に利用するのであれば、コンソールを直接利用できる環境や、ツールが実行できる
環境での利用が良いのではと思います。
昨今、Cloud環境を利用するシーンが多くなり、検証するために証明書が必要になったりする
ケースが増えてきているかと思いますが、Cloudを利用すると自己証明書を利用することが
できずに公的認証局が発行した証明書が必須になります。
「事前の検証で証明書を買ってうまくいかなかったもったいないしー」ってな場合には
少々手間はかかりますがLet's Encryptは十分使えると思います。
CloudとのSAML認証を検証するため、No-IPを利用してLet's Encryptより発行された証明書を
導入して検証していますが、今のところ問題はなさそうです。
90日後の更新を覚えておかないと・・・。