web-dev-qa-db-ja.com

サブジェクト代替名が証明書に追加されていません

Windows CertSrv Web登録クライアント内の追加の属性フィールドを使用して新しい証明書を発行しようとしています。

CSRを追加し、テンプレートを選択して、これを属性フィールドに入力しました。

SAN:dns=HOSTNAME&dns=HOSTNAME.DOMAIN.COM&ipaddress=IPADRESS

要求は成功しましたが、署名された証明書を確認すると、「代替名」属性が追加されていません。何か不足していますか?テンプレートに問題があるのでしょうか? (いくつかのカスタム設定でデフォルトのWin 2003レベルのWebサーバーテンプレートコピーを使用)。

/ editまた使ってみました

certreq -submit -attrib "CertificateTemplate:MYTEMPLATE" <Cert Request.req> -attrib "SAN:dns=HOSTNAME&dns=HOSTNAME2&ipaddress=IPADDRESS"

同じ問題が発生します。証明書は生成されますが、SAN属性はありません。

/ edit2また、SANを使用して証明書を発行するようにCAを設定しました

certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2

cAサービスを再起動します。それでも:SANはありません。

注意:reqを使用します。 CSRを生成するためのファイルとOpenSSLいくつかのSANが含まれているCAを使用して証明書を生成できます。ただし、アプリケーションからCSRを取得していて、アプリケーションのCSRを手動で生成できないため、このオプションは現在の状況では無効です。

/ edit3 デフォルトのウェブサーバー証明書を変更せずに使用しようとしましたが、突然機能しました。問題は、SANを有効にするためのテンプレート要件は何ですか?

2
masi

私はこれが古いことを知っています、しかし私はそれを自分で理解し、それが他の誰かを助けるかもしれないと思いました。私もCAにWebページまたはcertreq ... -attrib "SAN:DNS=<FQDN>[&DNS=<FQND2>...]..."形式のいずれかを介してSANを追加させることができませんでした。SAN属性は無視されました、証明書が発行されたとしても。

ただし、次の形式で動作することがわかりました:certreq -attrib "CertificateTemplate:WebServer\nSAN:DNS=<Name1>[&DNS=<name2>...][&IPAddress=<IP1>...]" <csr filename> <cer filename>

たとえば、HP_VC.csrという名前の証明書要求ファイルがあり、サブジェクトの別名をvc1、vc2、vc1.domain.com、vc2.domain.com、192.168.1.1、および192.168.1.2にしたい場合、コマンドは次のようになります。になる:

certreq -attrib "CertificateTemplate:WebServer\nSAN:DNS=vc1&DNS=vc2&DNS=vc1.domain.com&DNS=vc2.domain.com&IPAddress=192.168.1.1&IPAddress=192.168.1.2" HP_VC.csr HP_VC.cer

HP_VC.cerの証明書には、SAN属性が含まれます。

HP Virtual Connect(VC)モジュール、Onboard Administrator(OA)、およびiLOにこれを使用しています。これは、SANの証明書を必要とする一般的な状況で機能するはずです。

4
ERJM