Azure DevOps Server用のサーバ証明書作成:その2

その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でインポートさせるためのファイルを作成します。

作成した証明書の取り扱いは続きで。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください