その1の続きです。
1.ルート証明書を作成します。
openssl req -new -x509 -days 3650 -subj "/C=~/ST=~/L=~/O=~/CN=~" -out .\ca.crt -keyout .\private\ca.key
秘密鍵用のパスワードを入力すると、秘密鍵の「ca.key」と証明書「ca.crt」が作成されます。-subjで’O'(OrganizationName)を指定していますが、Webサーバ証明書に署名するときにルート証明書と不一致だとエラーになるので、明示的に指定しています。また、有効期間はAzure DevOps Server用なので3650日と長く設定しました。
2.Webサーバ証明書の秘密鍵作成と証明書要求発行
openssl req -new -subj "/C=~/ST=~/L=~/O=~/CN=~" -out server.csr -keyout .\private\server.key
ルート証明書とほぼ同じですが、x.509 v3のSubjectAltNameを後付けするために、一旦証明書要求発行ファイル(.crt)を作成しています。また、-subjの指定項目で、C~Oまではルート証明書と同じ内容を、CNはAzure DevOps ServerのFQDNを指定します。
3.x.509 v3属性用設定ファイルの作成
「C:\ManageCert\ssl-extensions-x509-part.cnf」を以下の内容で作成します。
basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth, codeSigning subjectKeyIdentifier = hash authorityKeyIdentifier = keyid, issuer subjectAltName = @subject_alt_section [subject_alt_section] DNS.1 = (サーバのホスト名) DNS.2 = (サーバのFQDN) IP.1 = (サーバのIPアドレス)
SubjectAltNameは、クライアントからアクセスするURLに含まれるものを設定する必要があるので、サーバホスト名/FQDN/IPアドレスの3つを指定しています。
4.証明書発行
openssl ca -cert ca.crt -days 3650 -extfile ssl-extensions-x509-part.cnf -keyfile .\private\ca.key -out server.crt -infiles server.csr
openssl.cnfとは別に設定ファイルを作成し、「-config」で指定してもよかったのですが、「-extfile」でx.509 v3属性に関する部分だけ個別指定できるので、こちらがスマートかなと思います。また、有効期限はルート証明書と同じ3650日にしています。
5.PKCS#12(pfx)形式への変換
openssl pkcs12 -export -inkey .\private\server.key -in server.crt -out server.pfx
IISがpfx形式しか受け付けないので、IISでインポートさせるためのファイルを作成します。
作成した証明書の取り扱いは続きで。
“Azure DevOps Server用のサーバ証明書作成:その2” への2件の返信