IIS7.5のSSL化
Windows Server 2008 R2 Stdで稼働しているIIS 7.5をSSL化して、httpsでアクセスできるようにします。
グローバルには、IPマスカレードでTCP443を公開して、ルーターに振り出されているグローバルIPでインターネットからアクセスさせます。
まずはSSLサーバー証明書を取得します。いろいろな認証局がサービスしていますので、そちらで取得します。
取得に際しては、証明書をインストールするサーバーでCSRを取得し、それを使って証明書を申請します。
一般名:サーバーへのアクセスURL(例:www.abcd.co.jp)
組織:会社名など(例:Alquimista Inc.)
組織単位:部署名(例:System)
市区町村:市町村名(例:Sagamihara-shi)
都道府県:都道府県名(例:Kanagawa)
国/地域:JP
このように設定します。
ここで作成されたCSRでSSLサーバー証明書を申請し、証明書を取得します。
証明書は、
-----BEGIN CERTIFICATE-----
で始まるテキストデータで、これをxxx.crtとして保存します。
先ほどの「サーバー証明書」のメニューから「証明書の要求の完了」を実行します。
証明書が登録されると「サーバー証明書」に証明書が追加されます。
これでhttpsでこのサーバーにアクセスできるようになります。
アクセスURLが一般名と同じであれば、サーバー証明書が有効となり、ブラウザーに鍵のマークが正しく表示されます。
ところが、この状態でアクセスしたところ、ブラウザーが以下のエラーを表示し、アクセスできませんでした。
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
TLSのバージョンが古く、セキュリティが確保されないために、アクセスさせてくれないようです。
TLSのバージョンは、任意のページを表示してコンテキストメニューの「プロパティ」から確認することができます。
TLS1.2を有効化します。レジストリの変更だけで有効になります。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProvider\SCHANNEL\Protocolsに移動します。
Protocolsを右クリックでKeyを作成しフォルダ名を “TLS 1.2”とします。
TLS 1.2で右クリックし、ClientとServerの2つのKeyを作成します。
作成した ClientとServerそれぞれにDWORD32で DisabledByDefault 値0 と Enabled 値1を作成して、再起動します。