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

これを書いている時点ではAzure DevOps ServerはRC2が公開されていますが、TFS2017以降はWebサイトはSSLを推奨していることと、Chromeがhttpのサイトをエラーにするようになったので、自己署名証明書とWebサーバ証明書を作成して、Webサイトのhttps化に対応してみました。

よく見かけるのはActive Directory証明書サービス(AD CS)で作成する方法ですが、Chrome 58以降で証明書のCommonName(CN)を参照せず、X.509 v3のSubjectAltName(SAN)を参照するようになったので、単純には適用できなくなりました。PowerShellのNew-SelfSignedCertificateを使うことで対応できますが、今回はOpenSSLを使って、自己署名証明書(オレオレ証明書)とWebサーバ証明書を作成してみます。(恐らくですが、OpenSSLであればWindows 10で構築するときにも使えるはずです。)

検証環境はこんな感じです。

  • Windows Server 2019(1809/17763.316)
  • Azure DevOps Server RC2
  • OpenSSL v1.1.1a Light

Windows ServerとAzure DevOps ServerのインストールとAzure DevOps Serverの構成ウィザードは先に済ませます。

OpenSSLのインストールは普通に行ってください(「C:\Program Files\OpenSSL-Win64」にインストールされると思います)。

管理者権限で起動したコマンドプロンプトで以下の作業を行います。

1.環境変数PATHにopenssl.exeのパスを追加
OS環境変数に登録してもいいんですが、opensslコマンドがいつでもどこでも使えるのは若干気が引けるので、ここでは「set PATH=%PATH%;”:\Program Files\OpenSSL-Win64\bin”」で一時的にパスを追加することにしておきます。

2.作業フォルダの作成
「C:\ManageCert」をベースの作業フォルダとし、サブフォルダとして「certs」「crl」「newcerts」「private」を作成します。

cd /d C:\ManageCert
md certs
md crl
md newcerts
md private

3.認証局で使用するファイルの作成

echo 01 > serial
copy nul index.txt
echo unique_subject=yes > index.txt.attr

4.openssl.cnfの変更
「C:\Program Files\Common Files\SSL\openssl.cnf」のCA_defaultセクションにある「dir」に対して、「C:\\ManageCert」を指定します。
※「C:\ManageCert」では円記号がエスケープされないのでエラーになります。

長くなったので続きます。

コメントを残す

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

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