Azure Stack の証明書要求 (CSR) の作成

こんにちは。

今回は Azure Stack version 1901 のインストールに必要な証明書を作成するために必要な証明書要求を作成します。前回の投稿 (Azure Stack の証明書要件 ) で、Azure Stack を利用する際には、最低11個の証明書が必要と記載しました。その作成する証明書の具体的な要件も多くあります。


証明書の要件

Azure Stack で利用する証明書の要件です。公開鍵と秘密鍵を持つ pfx 形式の証明書を準備する必要がありますが、認証機関から発行される証明書は cer ファイルが一般的かと思います。

認証局から発行される cer ファイルを発行する際に必要な要件です。

  • 証明書は、内部の証明機関または公的証明機関のどちらかから発行されている必要があります。 公的証明機関が使用されている場合は、Microsoft の信頼されたルート機関プログラムの一部として基本オペレーティング システム イメージに含まれている必要があります。 詳細な一覧については、 https://gallery.technet.microsoft.com/Trusted-Root-Certificate-123665ca をご覧ください。
  • お使いの Azure Stack インフラストラクチャは、証明書において公開されている証明機関の証明書失効リスト (CRL) の場所にネットワーク アクセスできる必要があります。 この CRL は、http エンドポイントである必要があります
  • 証明書を交換する場合、証明書は、デプロイ時に指定された証明書の署名に使用したのと同じ内部の証明機関、または上記の公的パブリック証明機関のいずれかから発行されたものである必要があります。
  • 自己署名証明書は使用できません。
  • デプロイおよびローテーションの場合は、証明書のサブジェクト名フィールドとサブジェクトの別名 (SAN) フィールドのすべての名前空間をカバーする 1 つの証明書を使用するか、または、各名前空間で利用する予定の Azure Stack サービスが必要とする個別の証明書を使用することができます。 注: どちらの方法でも、それらが必要とされる場所のエンドポイントに対してワイルドカードを使用する必要があります (例: KeyVaultKeyVaultInternal)。
  • 証明書の署名アルゴリズムを SHA1 にすることはできません。
  • 証明書 pfx ファイルの “Key Usage” フィールドには、”Digital Signature” と “KeyEncipherment” の値が含まれている必要があります。
  • 証明書の pfx ファイルの “Enhanced Key Usage” フィールドには、”Server Authentication (1.3.6.1.5.5.7.3.1)” と “Client Authentication (1.3.6.1.5.5.7.3.2)” の値が含まれている必要があります。
  • 証明書の “Issued to:” フィールドは “Issued by:” フィールドと同じにしないでください。
  • サブジェクト名と、サブジェクトの別名の拡張子 (x509v3_config) のサブジェクトの別名が一致するようにします。 サブジェクトの別名フィールドでは、単一の SSL 証明書によって保護される追加のホスト名 (Web サイト、IP アドレス、共通名) を指定できます。

cer ファイルから pfx に変更する必要があります。下記は pfx ファイルに変換する際の要件です。

  • Azure Stack のインストールには公開キーと秘密キーの両方が必要なため、証明書の形式は PFX である必要があります。 秘密キーにはローカル コンピューターのキー属性が設定されている必要があります。
  • PFX 暗号化は、3DES (これは、Windows 10 クライアントまたは Windows Server 2016 証明書ストアからエクスポートする場合の既定です) である必要があります。
  • 証明書の PFX 暗号化は、3 DES になっている必要があります。
  • デプロイの時点で、すべての証明書 pfx ファイルのパスワードが同じである必要があります。
  • 証明書 pfx に対するパスワードは、複雑なパスワードである必要があります。次のパスワードの複雑さの要件を満たしているパスワードを作成します。 8 文字の最小長。 パスワードに、大文字、小文字、0 – 9 の数字、特殊文字、および大文字でも小文字でもない英字のうち 3 種類以上が含まれている。 このパスワードを書き留めておいてください。 デプロイ パラメーターとして使用します。

証明書要求の作成

この色々と書いてある要件を満たす証明書を作成するための、証明書要求は簡単に Powershell で作成することが可能です。Powershell で作成するには、専用のモジュールが必要です。インターネット経由でダウンロードし、Windows 10 や Windows Server から実行することが可能です。

1、下記コマンドを実行して AzsReadinessChecker のインストール

Install-Module Microsoft.AzureStack.ReadinessChecker

2、サブジェクトの指定 (会社名など必要に応じて修正してください)

$subjectHash = [ordered]@{“OU”=”AzureStack“;”O”=”Microsoft“;”L”=”Redmond“;”ST”=”Washington“;”C”=”US“}

3、CSR を出力するフォルダの指定

$outputDirectory = “$ENV:USERPROFILE\Documents\AzureStackCSR”

フォルダが存在しない場合は、作成してください

mkdir $outputDirectory

4、利用するID の指定 (AAD or ADFS)

$IdentitySystem = “AAD”

$IdentitySystem = “ADFS”

5、リージョン名と 外部ドメイン名の指定

$regionName = ‘tokyo’
$externalFQDN = ‘azurestack.contoso.com’

ここで設定した値 ( <regionName>.<externalFQDN> ) が、Azure Stack のエンドポイントに設定されます。

ポータル: portal.east.azurestack.contoso.com

6、CSR を作成します。1枚の証明書ですべてのドメイン名を含める シングルCSR でも、それぞれのドメイン名に1枚の証明書を発行する CSR のどちらのパターンも作成可能です。ただし、運用環境では、シングル CSR は推奨されないようです。また、この CSR 作成で、PaaS 用のドメインを含める CSR を作成することも可能です。 CSR 作成コマンドに “-InclusePaaS” オプションを追加するだけです。

  • 必要なドメイン毎に証明書を発行する場合の CSR 作成

New-AzsCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subjectHash -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem

  • 1枚の証明書で複数のドメインをカバーする CSR 作成

New-AzsCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subjectHash -RequestType SingleCSR -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem

7、出力先に指定したフォルダに CSR が作成されたことを確認します。

これで CSR の作成は完了です。証明書を作成する認証局に CSR を提出し、証明書を発行してもらってください。メモ帳で開けば内容をコピペすることができます!

これで、Azure Stack の要件を満たす証明書を作成することができます。証明書の要件は色々書いてありますが、簡単に CSR を作成できるので問題ありません。CSR を簡単に作成できるので、プライベート CA や、エンタープライズCA だけでなく 外部認証局への依頼も簡単にできるかと思います!

Azure Stack の証明書要件

こんにちは。


Azure Stack 1901 時点での 証明書要件をご紹介します。 Azure Stack 統合システムを導入する際、証明書の準備が必須です。Azure Stack で必要な証明書はマルチドメインかつ、ワイルドカードの証明書も必要になります。 Azure Stack のインストール時に必須の証明書と、PaaS をインストールする際に必要な証明書の2種類があります。


必須の証明書

AAD を認証機関として利用する場合は、最低11枚の証明書を準備しなければ、Azure Stack をインストールすることができません。

また、Azure Stack の認証をAzure AD ではなく、ADFS を利用してオンプレミスの AD を利用した場合は、追加で2つの証明書が必要になります。


オプションの PaaS 証明書

Azure Stack のインストール時に必要ではないですが、DBaaS や App Services を利用する場合に必要な証明書です。

PaaS 用の証明書は1点注意が必要です。※1 と記載のある証明書は、1枚で準備する必要があります。この証明書は ”マルチドメイン” かつ ”ワイルドカード” である必要があります。

また、※2 の証明書に関しては、appservice.<region>.<fqdn> をワイルドカードでまとめることはできません。そのため、api、ftp、sso のそれぞれで証明書を準備する必要があります。


クラウドSSLとは

クラウド証明書とは、1枚の証明書で複数の別ドメイン(FQDN)でのSSL通信を実現する証明書です。日本で、マルチドメインでワイルドカードの証明書を発行できる公的認証局はあまり多くないようですが、グローバルサインさんの説明がわかりやすいので紹介させていただきました。


証明書の要件

Azure Stack で利用する証明書は PaaS も含めると最大 18 枚の証明書を準備する必要があります。また、証明書の要件に記載のある通り、証明書の構成についても要件が多くあります。この要件をすべて理解し、証明書を準備するのは結構大変かと思います。しかし、1つでも要件を満たしていない場合、Azure Stack のインストールに失敗する可能性があります。公的認証局から発行した場合は、再度証明書の作り直しになると、枚数も多いことからそれだけで多くの出費になると思います。

Azure Stack で必要な証明書は、以下の認証局から発行されたものを利用可能です。

Azure Stack を社内に設置して社員が利用するのみの環境であれば、内部認証機関から発行した証明書を利用し、証明書費用を抑えたりすることも可能です。

Azure Stack の利用者はだれか、Azure Stack をどこに置くかによって、最適な証明書を利用してください!