読者です 読者をやめる 読者になる 読者になる

ActiveDirectoryの証明書サービスにsubjectAltName入れる

そもそもSHA1つかってた、時代に取り残されていた

なんかね、もうIEもそろそろヤバイだろうし、いい加減SHA256つかうかと。。。

↓みてハッシュアルゴリズム変えた

Update Microsoft certificate authorities to use the SHA-2 hashing algorithm – CUsoon

コメント欄のスティーブが知りたいことを聞いてくれていてとても助かる。

楽ちん×2と思いながら、いつも通りIISの証明書要求の作成からサーバー証明を発行した。

さて、クライアントにSHA256になったばかりのCA証明をいれてアクセスすると

なんか、「missing_subjectAstName」とか言われてChrome様お怒りになられている。

missing_subjectAstNameについて調べてみる

Fixing Chrome 58+ [missing_subjectAltName] with openssl when using self signed certificates | Alexander Zeitler

Support for commonName matching in Certificates - Chrome Platform Status

ざっくりした理解

  • とにかく最新のChrome様はCNでなくてSANが大事
  • FireFoxもダメなはず?
  • とりあえずレジストリで逃げる人多数

でもね、僕の場合レジストリで逃げることはできない事情があるのです。

AD証明書サービスでSANいれちゃおう

ということで奮闘すること2日間で行きついたサイト

サーバ証明書 : なんでも屋さんの備忘録
How to Request a Certificate With a Custom SAN


またざっくり理解

  • ADはデフォでSANつけない、つけるようにするスイッチがある
  • でもEDITF_ATTRIBUTESUBJECTALTNAME2はむやみにONは危険
  • 要求もなんだか手数が多いよ
  • 日本語で読ませて。。。

手順的MEMO

とりあえず有効にした

> certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
> net stop certsvc
> net start certsvc

mmc >> スナップインの追加 >> 証明書サービス
個人 >> 証明書 >> すべてのタスク >> 詳細設定操作 >> カスタム要求の作成
次へ
カスタム要求 登録ポリシーなしで続行する >> 次へ
(テンプレートなし)レガシーキー >> PKCS #10(p) >> 次へ ※レガシーでないと後々sha256選べんかった
プロパティ
[全般]フレンドリ名は適当
[サブジェクト]
サブジェクト名
 CN:FQDN入れた
 L:入れた
 S:入れた
 C:入れた
 O:入れた
 OU:入れた
 CN:入れた
・別名
 DNSFQDNいれた
[拡張機能]
キーの使用法
・デジタル署名
・キーの暗号化
拡張キー使用法
・サーバー証明
・クライアント証明
[秘密キー]
サイズを2048に
ハッシュアルゴリズム:SHA256

で、ファイルできる。

でCAに要求

>certreq -submit -config CAサーバー\CAの名前 さっき作ったファイルのパス サーバー証明を保存するパス

ここでCAで発行処理を行う

>certreq -retrieve -config CAサーバー\CAの名前 1184 サーバー証明を保存するパス

サーバー証明書いただき

certreq -accept -config CAサーバー\CAの名前 サーバー証明を保存するパス

あとはIISバインディングを変更

無事、Chrome様のお怒りも静まりましたとさ。