El primer paso para crear un certificado de servidor es crear una solicitud de firma de certificado (CSR). Publique la CSR en el dispositivo y envíeselo a su autoridad de certificación. Después de recibir el certificado firmado de la autoridad de certificación, cargue ese certificado firmado tal como se describe en Cargar una clave o un certificado. El certificado firmado reemplaza la solicitud.
El comando template devuelve un marco para una CSR, que incluye valores por defecto para propiedades mínimas requeridas.
Ejemplo de solicitud:
GET /api/setting/v2/certificates/system/template HTTP/1.1 Host: alice.example.com:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: application/json
Resultado de ejemplo:
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 usa esta salida de template, incluya solo el elemento data.
Si desea especificar propiedades adicionales en su CSR, muestre las propiedades de un certificado de sistema existente, tal como se describe en Mostrar certificados.
Cuando esté satisfecho con su CSR, cargue la CSR en el host, tal como se muestra en el siguiente ejemplo. Una vez que cargue la CSR, ya no podrá cambiarla.
Ejemplo de solicitud:
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" } ] } } } }
Resultado de ejemplo:
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 cargada tiene un UUID que puede usar para visualizar las propiedades o recuperar la solicitud en formato PEM.
Para obtener la CSR en formato PEM, especifique uno de los siguientes valores en el encabezado Aceptar:
application/pkcs10 application/x-pem-file
Ejemplo de solicitud:
GET /api/setting/v2/certificates/system/csr-uuid HTTP/1.1 Host: alice.example.com:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: application/x-pem-file
Resultado de ejemplo:
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-----
Transfiera la CSR a su autoridad de certificación de la manera indicada. Cuando recibe el certificado firmado de la autoridad de certificación, cargue el certificado firmado tal como se muestra en Cargar una clave o un certificado.