サーバー証明書を作成する最初のステップは、証明書署名リクエスト (CSR) を作成することです。CSR をアプライアンスでポストし、CA に送信します。署名付き証明書を CA から受信したら、鍵または証明書のアップロードで説明されているように、その署名付き証明書をアップロードします。署名付き証明書がリクエストに置き換わります。
template コマンドは、最低限必要なプロパティーのデフォルト値も含めて、CSR のフレームワークを返します。
リクエストの例:
GET /api/setting/v2/certificates/system/template HTTP/1.1 Host: alice.example.com:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: application/json
結果例:
HTTP/1.1 200 OK
Date: Thu, 13 May 2021 08:03:03 GMT
Content-Length: 261
Content-Type: application/json; charset=utf-8
X-Zfssa-Setting-Api: 2.0
X-Zfssa-Api-Version: 2.0
{
"request": {
"type": "request",
"data": {
"subject": [
{
"commonName": "alice.example.com"
}
],
"extensions": {
"subjectAltName": {
"value": [
{
"IP": "alice.example.com-ipaddr"
},
{
"DNS": "alice.example.com"
}
]
}
}
},
"href": "/api/setting/v2/certificates/system/template"
}
}
この template 出力を使用する場合、data 要素のみを含めます。
CSR に指定する必要のある追加のプロパティーについては、証明書の一覧表示に示すように、既存のシステム証明書のプロパティーを一覧表示します。
CSR が完成したら、次の例に示すように、CSR をホストにアップロードします。CSR は、一度アップロードすると変更できません。
リクエストの例:
POST /api/setting/v2/certificates/system HTTP/1.1
Host: alice.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=
Content-type: application/json
{
"data": {
"subject": [
{
"commonName": "alice.example.com"
},
{
"organizationName": "Example Corp, Inc"
},
{
"localityName": "Exampleton"
},
{
"stateOrProvinceName": "CA"
},
{
"countryName": "US"
}
],
"extensions": {
"subjectAltName": {
"value": [
{
"DNS": "alice.example.com"
},
{
"IP": "alice.example.com-ipaddr"
}
]
}
}
}
}
結果例:
HTTP/1.1 201 Created
Date: Fri, 14 May 2021 01:17:45 GMT
Content-Type: application/json; charset=utf-8
X-Zfssa-Api-Version: 2.0
X-Zfssa-Setting-Api: 2.0
Location: /api/setting/v2/certificates/system/65119889-98d3-4fc4-bff5-f007a55f6cb3
Content-Length: 379
{
"request": {
"uuid": "csr-uuid",
"type": "request",
"data": {
"subject": [
{
"commonName": "alice.example.com"
},
{
"organizationName": "Example Corp, Inc"
},
{
"localityName": "Exampleton"
},
{
"stateOrProvinceName": "CA"
},
{
"countryName": "US"
}
],
"extensions": {
"subjectAltName": {
"value": [
{
"DNS": "alice.example.com"
},
{
"IP": "alice.example.com-ipaddr"
}
]
}
}
},
"href": "/api/setting/v2/certificates/system/csr-uuid"
}
}
アップロードした CSR には、プロパティーの表示や PEM 形式でのリクエストの取得に使用できる UUID があります。
CSR を PEM 形式で返すには、次のいずれかの値を Accept ヘッダーに指定します。
application/pkcs10 application/x-pem-file
リクエストの例:
GET /api/setting/v2/certificates/system/csr-uuid HTTP/1.1 Host: alice.example.com:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: application/x-pem-file
結果例:
HTTP/1.1 200 OK Date: Fri, 14 May 2021 03:47:21 GMT Content-Type: application/x-pem-file; charset=utf-8 X-Zfssa-Api-Version: 2.0 X-Zfssa-Setting-Api: 2.0 Content-Length: 997 -----BEGIN CERTIFICATE REQUEST----- MIICpjCCAY4CAQAwJDEiMCAGA1UEAwwZYXJkb2NoLWt6LTIudWsub3JhY2xlLmNv ... Bc0Q9FVRVv89AkmeAlF7727aIqmgmFcIUIIrEKTG4PSacedaoBsbjpvrizCuMhyo vgUkOPE/0xLAfw== -----END CERTIFICATE REQUEST-----
前述の方法で、CSR を CA に転送します。署名付き証明書を CA から受信したら、鍵または証明書のアップロードに示すように、その署名付き証明書をアップロードします。