証明書の発行先を複数に設定する

マイクロソフトの証明書サーバー(Active Directory証明書サービス)を使う機会が私の周りで、にわかに増えています。
証明書サービスって、たしかWindows NT 4.0のオプションパックで提供されたのが最初だったと記憶しているのですが、
その頃に比べると、証明書を利用する場面がとても増えたように思います。

しかしながら、証明書サービスの機能について、しっかり学ぶ場って、逆に少なくなった気がするんですよね。
例えば、私がこれから紹介する「証明書の発行先を複数に設定する方法」というのも、
調べるのに結構時間がかかったりしたので、何か体系的に学べる場があると良いなと思う、この頃です。

■ ■ ■

では、ここから「証明書の発行先を複数に設定する方法」と「発行先を複数にするって、どういうこと?」
について紹介します。

証明書に記載されている属性に、「発行先」と「発行者」という情報があります。

110603-2

発行者には、証明書を発行した証明書サーバーの名前が入り、
発行先には、証明書を利用するサーバーの名前が一般的に入ります。

このとき、メールサーバーでWebメールの機能を提供するSSLサイトにおいて、
イントラネットからWebメールにアクセスするときと、
インターネットからWebメールにアクセスするときで、
異なるURLを使いたい場合には、 異なる発行先ということになりますので、証明書を2枚発行しなければなりません。

例えば、Exchange Serverでは、イントラネットからのOWAアクセスに使うURL(内部URL)と、
インターネットからのOWAアクセスに使うURL(外部URL)は明示的に別々に設定できるので、
同じサーバーにアクセスする場合でも、イントラネットとインターネットで別々のURL(FQDN)になり、
1枚の証明書を使いまわすことができず、2枚の証明書を用意する必要があります。
(FQDNが異なれば、発行先も異なるため)

110603-3

そのときには、1枚の証明書で2か所以上の発行先を指定した証明書の発行方法があります。
(2か所以上の発行先→厳密には2か所以上のFQDNを指定した[サブジェクトの別名]になります)
そのやり方とは、以下のコマンドを実行するだけです。

certutil –setreg policyEditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2

実行したら、certsvcサービスを再起動してください。
(net stop certsvcとnet start certsvcコマンドで実行できますね)
すると、以下のような証明書を発行できるようになります。

110603-1

証明書の発行先そのものは、相変わらず1か所しか指定できなのですが、
証明書の[詳細]タブの[サブジェクトの別名]を見ると、
複数の名前(FQDN)が入っていることが確認できます。
サブジェクトの別名は発行先の代わりとして使える名前になりますので、
このような方法で、1枚の証明書で複数のFQDNをサポートできるようになります。

■最後に…
サブジェクトの別名は英語でSANと書くので、ストレージのSANと勘違いしてしまいそうです。
サブジェクトの別名を利用できるようにする設定を英語でSAN Extensionなどと言うそうなので、
関連情報を調べてみたい人は「SAN Extension」で調べてみると良いと思います。