どうもミツシマです。

今回は自己証明書、通称オレオレ証明書をPowershellコマンドで作成する方法を検証してみました。


検証環境は以下の通り
SV:Windows Server2016


〜NewCertification.ps1〜

#WMIへ接続して、FQDNを取得
$WmiObj = Get-WmiObject win32_Computersystem
$strFQDN = $WmiObj.Name + "." + $WmiObj.Domain
New-SelfSignedCertificate -Subject $strFQDN -DnsName $strFQDN -CertStoreLocation "cert:¥LocalMachine¥My" -HashAlgorithm SHA256 -KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(10)
Write-Output "証明書の作成完了"
pause


〜解説〜

今回オレオレ証明書を作成する目的としては、リモートデスクトップサーバ(RDS)の証明書を作成する為です。
通常であれば、公的なサーバ証明書を使用するか、もしくは「Active Directory証明書サービス(AD CS)」のサーバを社内に構築するのが一般的かもしれません。
ですが、お金をかけて公的な証明書を作成したりCAを構築したりするのは面倒だったり、後はハードルが高かったりするので、もっと簡単な方法ないかな〜〜と考えたのがきっかけです。
※RDSサーバのGUIから自己証明書を作成することは出来るのですが、有効期限が2年だったりと短かったりします。。。

Powershellコマンド自体は「New-SelfSignedCertificate 」を使用します。
上記のコマンド例では、ドメイン参加しているメンバーサーバを想定しますのでWORKGROUP環境だとFQDNがおかしくなる可能性大なので注意が必要です。
後は「個人」証明書の中に有効期限10年の証明書が発行出来るので、それをエクスポートしてADで配布してやれば、RDSサーバ接続時の証明書エラーを回避出来たりします。
※暗号化強度は一般的なものと設定したつもりですが、変更したい場合は「-HashAlgorithm」や「-KeyLength」の値を変更すればOKです。


今回の検証はこれで終了。


P.S.2020年も色々と検証して書いていこうと思います(^o^)
スポンサードリンク