¿Cómo puedo usar un certificado de cliente emitido por un tercero al configurar la autenticación TLS mutua para las API de API Gateway?
Quiero utilizar un certificado de cliente emitido por un tercero al configurar la autenticación mutua de seguridad de la capa de transporte (TLS) para las API de Amazon API Gateway.
Resolución
Para usar un certificado de cliente firmado por un tercero para API Gateway con autenticación TLS, siga estos pasos:
- Cree una tienda de confianza para usar el certificado firmado por terceros.
- Cree un nombre de dominio personalizado y un mapeo de API para su API de API Gateway.
- Cree un registro DNS para asignar el nombre de dominio personalizado a API Gateway.
- Inhabilite el punto de conexión predeterminado.
- Pruebe la API.
Nota:
- Si recibe errores al ejecutar los comandos de la AWS Command Line Interface (AWS CLI), asegúrese de utilizar la versión más reciente de la AWS CLI.
- El TLS mutuo no es compatible con las API privadas.
Cree una tienda de confianza para usar el certificado firmado por terceros
1. Genere un RootCA. El RootCA se utiliza para emitir el certificado de cliente.
openssl genrsa -out RootCA.key 4096 openssl req -new -x509 -days 3650 -key RootCA.key -out RootCA.pem
2. Rellene los campos obligatorios e introduzca el nombre de dominio.
3. Cree una clave privada de certificado de cliente, una solicitud de firma de certificado (CSR) y un certificado de cliente.
openssl genrsa -out my_client.key 2048 openssl req -new -key my_client.key -out my_client.csr
4. Firme el certificado de cliente con la CA que creó anteriormente.
openssl x509 -req -in my_client.csr -CA RootCA.pem -CAkey RootCA.key -set_serial 01 -out my_client.pem -days 3650 -sha256
5. Cree un bucket de Amazon Simple Storage Service (Amazon S3) para almacenar el archivo truststore.pem.
6. Suba el archivo RootCA.pem al almacén de confianza del bucket de Amazon S3.
7. (Opcional) Cree un archivo de cadena de certificados desde el certificado de entidad de certificación hasta la CA raíz.
Cat Intermediate.pem ca.pem >ca-chain.pem.
Para obtener más información, consulte Configuración de su tienda de confianza.
Cree un nombre de dominio personalizado y un mapeo de API para su API de API Gateway
Nota: Solo los certificados con un tamaño de clave de 2048 bits están visibles con API Gateway. El tamaño del certificado no puede superar los 2048 bits.
1. Abra la consola de API Gateway y, a continuación, seleccione Nombres de dominio personalizados.
2. En el caso de los Nombres de dominio, introduzca su nombre de dominio y, a continuación, seleccione Create (Crear).
3. En Nombre de dominio, introduzca su nombre de dominio.
4. Para la Versión mínima de TLS, elija TLS 1.2.
5. Habilite la Autenticación TLS mutua.
6. Para el URI de Truststore, introduzca el URI de Amazon S3 que creó anteriormente.
7. Para la Configuración del punto de conexión, elija Regional.
8. En Tipo de certificado, elija el tipo de certificado y, a continuación, elija Create domain name (Crear nombre de dominio).
9. Elija su nombre de dominio personalizado y, a continuación, seleccione Configure API mappings (Configurar mapeos de API).
10. Seleccione Add new mapping (Agregar nuevo mapeo).
11. Seleccione la API, Stage (Etapa) y la Path (Ruta) para el mapeo y, a continuación, elija Save (Guardar).
Para obtener más información, consulte ¿Cómo puedo configurar un nombre de dominio personalizado para mi API de API Gateway?
Creación de un registro DNS para asignar el nombre de dominio personalizado a API Gateway
Cree un registro DNS para dirigir el nombre de dominio personalizado al nombre de dominio regional de API Gateway. Esto permite que el tráfico vinculado al nombre de dominio personalizado se dirija al nombre de host regional de la API. El registro DNS puede ser del tipo CNAME o «Alias A».
Para obtener más información, consulte Configurar la ruta 53 para enrutar el tráfico a un punto de conexión de API Gateway.
Deshabilitación del punto de conexión predeterminado
De forma predeterminada, los clientes pueden invocar las API mediante el punto de conexión execute-api que API Gateway genera para su API. Deshabilite el punto de conexión execute-api predeterminado para que los clientes puedan acceder a su API solo con un nombre de dominio personalizado.
Para las API HTTP, consulte Deshabilitar el punto de conexión predeterminado de una API HTTP.
Para las API REST, consulte Deshabilitar el punto de conexión predeterminado de una API REST.
Probar la API
Pruebe la API con los parámetros**--key** y --cert para enviar el certificado de cliente como parte de la solicitud.
$ curl -v https://{YourCustomDomainName}/{resource} --key my_client.key --cert my_client.pem
Nota: La clave privada my_client.key y el certificado de cliente my_client.pem deben incluirse para que la solicitud se realice correctamente.
Información relacionada
Presentamos la autenticación TLS mutua para Amazon API Gateway

Contenido relevante
- OFICIAL DE AWSActualizada hace 4 meses
- OFICIAL DE AWSActualizada hace un año