サーバー証明書を作成する最初のステップは、証明書署名リクエスト (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 から受信したら、鍵または証明書のアップロードに示すように、その署名付き証明書をアップロードします。