Windowsで自己署名証明書を作成方法。有効期間を1年以上(5年や10年)で

推奨されるものではないですが、一年以上の長期有効期限の自己署名証明書(通称オレオレ証明書)を

  • RDS(リモートデスクトップサービス)や
  • IISのhttps Webサイトで

使用したくなることがります。
LinuxではOpenSSLがあったり、昔のWindowsではselfssl.exeコマンド(IISリソースキット付属)がありましたが、今どきのWindowsでは自己署名証明書を作成する方法はないのでしょうか?

 

環境・前提条件

  • Windows Server 2016

での環境です。
今回は、Windows Server 2016のRDS(RD接続ブローカー)へ自己署名証明書を既存の証明書として証明書ストアに追加するためにテスト作成しました。

image

結論、PowerShellコマンドのNew-SelfSignedCertificateで長期有効期間のオレオレ証明書を作成できる!

image

PowerShellに、自己署名証明書(self Signed Certificate)を作成するコマンドがあるんですね!
なので、selfsslコマンドは不要になり、無くなってしまったんですね。

 

例えば、有効期限5年のオレオレ証明書を作成してみる

image

上記で実行したコマンド例を以下に記載します。

New-SelfSignedCertificate -Subject "sub.putise.com" -DnsName "dns.putise.com" -CertStoreLocation "cert:\LocalMachine\My" -KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(5)

※ 今回は試しに、サブジェクトをsub.putise.com、DNS名をdns.putise.comとしましたが、RDSではサブジェクトまたはDNS名(サブジェクト代替名)にリモートデスクトップ接続時にクライアント側から指定されるFQDN(接続ブローカー名)を指定する必要がある。つまり、サブジェクトとDNS名の両方に接続ブローカーFQDN名を指定すれば良い。

上記コマンドで発行した証明書を確認するには、「Certlm.msc」コマンドを実行し

image

「証明書 - ローカルコンピュータ」-「個人」-「証明書」内を確認すると、
先ほど作成した長期有効期間の証明書があり確認ができます。

image

確かに有効期間が5年に延長されていることと
サブジェクト、サブジェクト代替名が設定されていることが確認出来ます。

image

 

作成した長期有効期間のオレオレ証明書をエクスポートします。

image

作成した自己署名証明書を右クリックし、「すべてのタスク」から「エクスポート」します。
以下のように証明書と一緒に秘密キーも出力したpfxファイルを作成します。

image

※ このエクスポートされたPFXファイルを
今回の目的であるRDSへ取り込めば、RDSのオレオレ証明書による長期有効期限化が実現出来ます。
(IISの場合は、IISの「サーバー証明書」にインポートしてください)

 

参考:別のオレオレ証明書作成方法、IISマネージャー利用(GUI)

こちらの方法では有効期間の延長方法は実現出来るか不明ですが・・・
オレオレ証明書を作成する別の方法(GUI)もありましたので参考までに紹介します。
こちらの方法はIISマネージャーを利用し、オレオレ証明書を作成します。

以下のように「サーバー証明書」をクリックします。

image

「自己署名入り証明書の作成」リンクを押します。

image

証明書のフレンドリ名を記載し、新しい証明書を保存する証明書ストアを指定します。

image

こちらの作成方法で作成した自己署名証明書は、有効期間を延長できないだけでなく
サブジェクト名の変更もできず、つけれるのはフレンドリ名だけですね。

image

なので、実際に証明書を使用するホストで証明書の作成が必須となってきます。

やはり、オレオレ証明書作成方法としては、New-SelfSignedCertificateコマンドの方が融通が利きますね!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です