こんにちは、サイオステクノロジーの小川です。
今回はPowershellを使って自己証明書を作成し、ADのLDAPS接続を設定する方法を紹介します。
サードパーティの証明書とOpenSSLで証明書を作成する方法については以下を参照してください。
マルチドメインに対応した自己証明書の作成についてはこちらを参照下さい。
PowerShellで証明書を作成
LDAPS通信を行うADにログインし、以下のスクリプトを適当なフォルダに配置します。今回は「C:\tmp」とします。
このスクリプトでは、証明書をローカルコンピュータの個人の証明書ストアに秘密鍵を含めたpfxファイルを登録し、ローカルコンピュータの信頼されたルート証明機関に登録します。そしてスクリプトを配置したフォルダに証明書をエクスポートする処理をスクリプトのみで完結させます。
※このスクリプトの証明書発行オプションは、暗号化方式をRSAアルゴリズム、キー長を2048bit、証明書の有効期限を10年で発行します。必要があれば適宜オプションを変更して下さい。
## ## Create self signed certificate ## $hostname = Read-Host "ADのFQDNを入力してください" $cert = New-SelfSignedCertificate -Subject $hostname -DnsName $hostname -CertStoreLocation "cert:\LocalMachine\My" -KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy NonExportable -NotAfter (Get-Date).AddYears(10) $cert ## ## Export new self signed certificate as .cer file ## $cerfile = "$hostname.cer" Export-Certificate -Cert $cert -FilePath $cerfile ## ## Import the new self signed certificate into Trusted Root Certification Authorities ## Import-Certificate -FilePath $cerfile -CertStoreLocation "cert:\LocalMachine\Root"
PowerShellを開き、スクリプトを配置したフォルダに移動し、スクリプト「makeCert.ps1」を実行します。
ADのFQDNの入力を求められるので、入力します。今回はADのFQDNを「ad1.example.com」として進めます。
後は自動で自己証明書を作成し、登録してくれます。
あっちにもこっちにも証明書をインポート、エクスポートする手間が省けてラクチンです!
証明書が作成されていることを確認する
スタートボタンを右クリックし、「ファイル名を指定して実行」で「certlm.msc」と入力し、管理コンソールの証明書ストアを表示します。
個人の証明書ストアに証明書と秘密鍵が登録されていることが確認できます。
信頼されたルート証明機関に証明書が登録されていることが確認できます。
証明書のパスを確認すると、自己証明書が信頼されていることが分かります。
スクリプトを配置した C:\tmp にも証明書がエクスポートされています。
エクスポートされた証明書をLDAPクライアントの「ローカルコンピュータの信頼されたルート証明機関」にインポートすることで、ADとLDAPS接続を行うことが可能になります。