Windows で署名アルゴリズムとして SHA-2 を用いた CSR を作成する方法

ここでは署名ハッシュアルゴリズムとして SHA-2 (SHA256) を利用した CSR を作成する方法について紹介します。

特に OpenSSL を利用するのではなく、Windows の証明書スナップインから CSR の作成を実施する方法を紹介します。

尚、SHA-2 を利用したサーバー証明書を要求する場合でも、CSR の作成時には SHA-1 でも問題ありません。 従いまして、SHA-2 のサーバー証明書が欲しい人はこれに従ってください、という話ではなく、あくまでも証明書スナップインのカスタム証明書作成方法として、紹介します。

また、オープンソースのライブラリである OpenSSL を利用可能な場合は「OpenSSL を用いて CSR を作成する方法」 も参考にしてください。ここで紹介する証明書スナップインを利用するよりずっと簡単です。

注: UI は可能な限り日本語・英語両方掲載します。

証明書スナップインからカスタム要求を作成

mmc にて証明書スナップインを追加します。このとき、ローカルコンピュータのコンピュータアカウントを指定します。

SSL の設定で使うサーバー証明書は Personal/Certificates に保存されます。 すべてのタスク (All Tasks) » 詳細設定操作 (Advanced Operations) » カスタム要求の作成 (Create Custom Request...) を選択して、CSR の作成を開始します。

次へをクリック。

"登録ポリシーなしで続行する" (Proceed without enrollment policy) を選択して、次へ。

CNG Key とフォーマットの PKCS #10 のまま次へ。

この画面で Details (詳細) を開きます。

ここで出現する Properties (プロパティ) ボタンから、詳細属性を設定します。

General (全般) タブではフレンドリ名を設定します。これはこれから作成する CSR でのコモンネームなどを設定しておくと良いでしょう。

Subject (サブジェクト) タブで属性を設定します。

少なくとも CN (Common Name, 共通名), C (Country, 国), L (Locality, 地域), O (Organization, 組織), OU (Organization Unit, 組織単位), S (State, 都道府県) は設定しましょう。

Extensions (拡張機能) タブでは、 Key usage (キー使用法) と Extended Key Usage (拡張キー使用法) を設定します。

キー使用法は Data encipherment (データの暗号化)、Digital signature (デジタル署名)、 Key encipherment (キーの暗号化)、Non repudiation (非否認) を選びます。

拡張キー使用法では Server Authentication (サーバー認証) を選びます。

日本語 UI はこうなります。

どうでも良い話ですが、「Windows 2000 では拡張キー使用法と呼ばれていました」なんて、 但し書きを書いてますが、見出しは「拡張キー使用法 (アプリケーションポリシー)」ですね。括弧書きと逆にしないなら、但し書き要らないのに。

こういう細かい設定画面では、こうした軽微なバグらしきものが長生きしてますね。

Private Key (秘密キー) タブでは、Key options (キーのオプション) とハッシュアルゴリズムを変更します。

秘密鍵はエクスポート可能にしておきます

内容を確認して次へをクリックします。

CSR を出力するファイル名と形式を指定して完了 (Finish) をクリックします。

この結果 証明書の登録要求 (Certificate Enrollment Requests) 以下の 証明書 (Certificate) 内に要求内容が保存されます。

CSR の内容をシマンテックのオンラインツールでチェックすると、確かに署名ハッシュアルゴリズムとして SHA256 と設定されたことが確認できます。

サーバー証明書のインポート

さて証明機関からサーバー証明書を発行してもらい、それをインポートします。

証明書スナップインから CSR 作成を開始した場合も、IIS マネージャからインポート可能です。

サーバー証明書のファイル名を指定して、インポートします。

サーバー証明書のエントリーが追加されます。

念のため証明書スナップインを確認すると、確かにCertificate Entrollment Requests (証明書の登録要求) 以下の 証明書ストアから消え、Personal (個人) 以下の証明書ストアに移動します。

SSL サイトの動作確認

ウェブサイトのバインディングを構成し、https 接続を許可します。

ブラウザからアクセスすると、確かに SSL 通信ができることが確認できます。

以上、ここでは Windows の証明書スナップインのカスタム証明書要求から CSR を作成し、 それを元に作られたサーバー証明書をインポートして IIS で利用できることを確認しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説