La première étape pour créer un certificat de serveur consiste à créer une demande de signature de certificat (CSR). Publiez la CSR sur l'appareil et envoyez-la à votre autorité de certification. Une fois que vous avez reçu le certificat signé de l'autorité de certification, téléchargez-le comme décrit dans Téléchargement d'une clé ou d'un certificat. Le certificat signé remplace la demande.
La commande template renvoie une structure de CSR, notamment les valeurs par défaut pour les propriétés minimales requises.
Exemple de demande :
GET /api/setting/v2/certificates/system/template HTTP/1.1 Host: alice.example.com:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: application/json
Exemple de résultat :
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" } }
Si vous utilisez cette sortie template, incluez seulement l'élément data.
Si vous souhaitez spécifier des propriétés supplémentaires dans votre CSR, répertoriez les propriétés d'un certificat système existant, comme indiqué dans la section Liste des certificats.
Lorsque votre CSR vous convient, téléchargez-la sur l'hôte, comme indiqué dans l'exemple suivant. Une fois que vous avez téléchargé la CSR, vous ne pouvez plus la modifier.
Exemple de demande :
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" } ] } } } }
Exemple de résultat :
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" } }
La CSR téléchargée dispose d'un UUID que vous pouvez utiliser pour afficher les propriétés ou récupérer la demande au format PEM.
Pour renvoyer la CSR au format PEM, spécifiez l'une des valeurs suivantes dans l'en-tête Accept :
application/pkcs10 application/x-pem-file
Exemple de demande :
GET /api/setting/v2/certificates/system/csr-uuid HTTP/1.1 Host: alice.example.com:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: application/x-pem-file
Exemple de résultat :
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-----
Transférez la CSR vers votre CA de la manière préconisée. Lorsque vous recevez le certificat signé de l'autorité de certification, téléchargez-le comme indiqué dans la section Téléchargement d'une clé ou d'un certificat.