Emisión de certificados de entidad final privadas - AWS Private Certificate Authority

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Emisión de certificados de entidad final privadas

Con una entidad emisora de certificados privada, puede solicitar certificados de entidad final privada a AWS Certificate Manager (ACM) o Autoridad de certificación privada de AWS. Las capacidades de ambos servicios se comparan en la siguiente tabla.

Capability

ACM

Autoridad de certificación privada de AWS

Emitir un certificado de entidad final

✓ (utilizando RequestCertificate o la consola)

✓ (usando IssueCertificate)

Asociación con balanceadores de carga y servicios conectados a Internet AWS

No compatible

Renovación administrada de certificados Apoyado indirectamente a través de ACM

Soporte de consola

No compatible

APIapoyo

CLIapoyo

Cuando Autoridad de certificación privada de AWS crea un certificado, sigue una plantilla que especifica el tipo de certificado y la longitud de la ruta. Si no ARN se proporciona ninguna plantilla a la CLI sentencia API o que crea el certificado, se aplica la plantilla EndEntityCertificate/V1 de forma predeterminada. Para obtener más información acerca de las plantillas de certificados disponibles, consulte Descripción de las plantillas de certificados.

Si bien ACM los certificados se diseñan en función de la confianza pública Autoridad de certificación privada de AWS , satisfacen las necesidades de su entorno privadoPKI. Por lo tanto, puede configurar los certificados utilizando Autoridad de certificación privada de AWS API y CLI de formas no permitidas porACM. Estos incluyen los siguientes:

Después de crear un TLS certificado privado utilizando Autoridad de certificación privada de AWS, puede importarlo ACM y usarlo con un AWS servicio compatible.

nota

Los certificados creados con el procedimiento que se indica a continuación, mediante el issue-certificate comando o con la IssueCertificateAPIacción, no se pueden exportar directamente para su uso externo AWS. Sin embargo, puede usar su entidad emisora de certificados privada para firmar los certificados emitidos a través de ellaACM, y esos certificados se pueden exportar junto con sus claves secretas. Para obtener más información, consulte Solicitud de un certificado privado y Exportación de un certificado privado en la Guía del ACM usuario.

Emitir un certificado estándar (AWS CLI)

Puede utilizar el Autoridad de certificación privada de AWS CLI comando issue-certificate o la API acción IssueCertificatepara solicitar un certificado de entidad final. Este comando requiere el nombre de recurso de Amazon (ARN) de la CA privada que desee utilizar para emitir el certificado. También debe generar una solicitud de firma de certificado (CSR) mediante un programa como Open SSL.

Si usa Autoridad de certificación privada de AWS API o AWS CLI para emitir un certificado privado, el certificado no se administra, lo que significa que no puede usar la ACM consola ni verlo o ACM API exportarlo, y el certificado no se renueva automáticamente. ACM CLI Sin embargo, puede usar el comando PCA get-certificate para recuperar los detalles del certificado y, si es propietario de la CA, puede crear un informe de auditoría.

Consideraciones sobre la creación de certificados

  • De conformidad con la RFCnorma 5280, la longitud del nombre de dominio (técnicamente, el nombre común) que proporcione no puede superar los 64 octetos (caracteres), incluidos los puntos. Para agregar un nombre de dominio más largo, especifíquelo en el campo Nombre alternativo del asunto, que admite nombres de hasta 253 octetos de longitud.

  • Si utiliza la AWS CLI versión 1.6.3 o posterior, utilice el prefijo fileb:// al especificar archivos de entrada codificados en base64, como. CSRs Esto garantiza que se analizan los datos correctamente Autoridad de certificación privada de AWS .

El siguiente SSL comando Abrir genera una CSR y una clave privada para un certificado:

$ openssl req -out csr.pem -new -newkey rsa:2048 -nodes -keyout private-key.pem

Puede inspeccionar el contenido de la CSR siguiente manera:

$ openssl req -in csr.pem -text -noout

El resultado debe parecerse al siguiente ejemplo abreviado:

Certificate Request: Data: Version: 0 (0x0) Subject: C=US, O=Big Org, CN=example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:ca:85:f4:3a:b7:5f:e2:66:be:fc:d8:97:65:3d: a4:3d:30:c6:02:0a:9e:1c:ca:bb:15:63:ca:22:81: 00:e1:a9:c0:69:64:75:57:56:53:a1:99:ee:e1:cd: ... aa:38:73:ff:3d:b7:00:74:82:8e:4a:5d:da:5f:79: 5a:89:52:e7:de:68:95:e0:16:9b:47:2d:57:49:2d: 9b:41:53:e2:7f:e1:bd:95:bf:eb:b3:a3:72:d6:a4: d3:63 Exponent: 65537 (0x10001) Attributes: a0:00 Signature Algorithm: sha256WithRSAEncryption 74:18:26:72:33:be:ef:ae:1d:1e:ff:15:e5:28:db:c1:e0:80: 42:2c:82:5a:34:aa:1a:70:df:fa:4f:19:e2:5a:0e:33:38:af: 21:aa:14:b4:85:35:9c:dd:73:98:1c:b7:ce:f3:ff:43:aa:11: .... 3c:b2:62:94:ad:94:11:55:c2:43:e0:5f:3b:39:d3:a6:4b:47: 09:6b:9d:6b:9b:95:15:10:25:be:8b:5c:cc:f1:ff:7b:26:6b: fa:81:df:e4:92:e5:3c:e5:7f:0e:d8:d9:6f:c5:a6:67:fb:2b: 0b:53:e5:22

El siguiente comando crea un certificado. Como no se especifica ninguna plantilla, se emite un certificado de entidad final base de forma predeterminada.

$ aws acm-pca issue-certificate \ --certificate-authority-arn arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566 \ --csr fileb://csr.pem \ --signing-algorithm "SHA256WITHRSA" \ --validity Value=365,Type="DAYS"

Se devuelve el certificado emitido: ARN

{ "CertificateArn":"arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID" }
nota

Autoridad de certificación privada de AWS devuelve inmediatamente un ARN con un número de serie cuando recibe el issue-certificate comando. Sin embargo, el procesamiento del certificado se realiza de forma asíncrona y, aun así, puede fallar. Si esto ocurre, un get-certificate comando que utilice el nuevo también ARN fallará.

Emita un certificado con un nombre de asunto personalizado mediante una APIPassthrough plantilla

En este ejemplo, se emite un certificado que contiene elementos de nombre de asunto personalizados. Además de proporcionar uno CSR como el deEmitir un certificado estándar (AWS CLI), se pasan dos argumentos adicionales al issue-certificate comando: el ARN de una APIPassthrough plantilla y un archivo de JSON configuración que especifica los atributos personalizados y sus identificadores de objeto (OIDs). No se puede usar StandardAttributes junto conCustomAttributes. Sin embargo, puede pasar el estándar OIDs como parte deCustomAttributes. El nombre del sujeto predeterminado OIDs se muestra en la siguiente tabla (información de RFC4519 y de la base de datos de OID referencia global):

Nombre del asunto

Abreviatura

ID de objeto

countryName

c

2.5.4.6

commonName

cn

2.5.4.3

dnQualifier [calificador de nombre distintivo]

2.5.4.46

generationQualifier

2.5.4,44

givenName

2.5.4,42

initials

2.5.4,43

locality

l

2.5.4.7

organizationName

o

2.5.4,10

organizationalUnitName

ou

2.5.4,11

pseudonym

2.5.4,65

serialNumber

2.5.4.5

st [estado]

2.5.4.8

surname

sn

2.5.4.4

title

2.5.4.12

domainComponent

dc

0,9,234,19200300.100,1,25

userid

0,9,2342 19200300.1001.1

El archivo de configuración de ejemplo api_passthrough_config.txt contiene el código siguiente:

{ "Subject": { "CustomAttributes": [ { "ObjectIdentifier": "2.5.4.6", "Value": "US" }, { "ObjectIdentifier": "1.3.6.1.4.1.37244.1.1", "Value": "BCDABCDA12341234" }, { "ObjectIdentifier": "1.3.6.1.4.1.37244.1.5", "Value": "CDABCDAB12341234" } ] } }

Escriba el siguiente comando para extraer el certificado:

$ aws acm-pca issue-certificate \ --validity Type=DAYS,Value=10 --signing-algorithm "SHA256WITHRSA" \ --csr fileb://csr.pem \ --api-passthrough file://api_passthrough_config.txt \ --template-arn arn:aws:acm-pca:::template/BlankEndEntityCertificate_APIPassthrough/V1 \ --certificate-authority-arn arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566

Se devuelve el certificado emitido: ARN

{ "CertificateArn":"arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID" }

Recupere el certificado localmente de la siguiente manera:

$ aws acm-pca get-certificate \ --certificate-authority-arn arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566 \ --certificate-arn arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID | \ jq -r .'Certificate' > cert.pem

Puede inspeccionar el contenido del certificado mediante OpenSSL:

$ openssl x509 -in cert.pem -text -noout
nota

También es posible crear una CA privada que transfiera atributos personalizados a cada certificado que emita.

Emita un certificado con extensiones personalizadas mediante una APIPassthrough plantilla

En este ejemplo, se emite un certificado que contiene extensiones personalizadas. Para ello, debe pasar tres argumentos al issue-certificate comando: el ARN de una APIPassthrough plantilla y un archivo de JSON configuración que especifique las extensiones personalizadas, y uno CSR similar al que se muestra enEmitir un certificado estándar (AWS CLI).

El archivo de configuración de ejemplo api_passthrough_config.txt contiene el código siguiente:

{ "Extensions": { "CustomExtensions": [ { "ObjectIdentifier": "2.5.29.30", "Value": "MBWgEzARgg8ucGVybWl0dGVkLnRlc3Q=", "Critical": true } ] } }

El certificado personalizado se emite de la siguiente manera:

$ aws acm-pca issue-certificate \ --validity Type=DAYS,Value=10 --signing-algorithm "SHA256WITHRSA" \ --csr fileb://csr.pem \ --api-passthrough file://api_passthrough_config.txt \ --template-arn arn:aws:acm-pca:::template/EndEntityCertificate_APIPassthrough/V1 \ --certificate-authority-arn arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566

Se devuelve el certificado emitido: ARN

{ "CertificateArn":"arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID" }

Recupere el certificado localmente de la siguiente manera:

$ aws acm-pca get-certificate \ --certificate-authority-arn arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566 \ --certificate-arn arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID | \ jq -r .'Certificate' > cert.pem

Puede inspeccionar el contenido del certificado mediante OpenSSL:

$ openssl x509 -in cert.pem -text -noout