Uso de certificados de servidor de IAM - AWS SDK for Java 2.x

Uso de certificados de servidor de IAM

Para habilitar las conexiones HTTPS en su sitio web o aplicación en AWS, necesita un certificado de servidor SSL/TLS. Puede utilizar un certificado de servidor proporcionado por AWS Certificate Manager o uno que haya obtenido de un proveedor externo.

Le recomendamos que utilice ACM para aprovisionar, administrar e implementar los certificados de servidor. Con ACM puede solicitar un certificado, implementarlo en sus recursos de AWS y dejar que ACM se ocupe de renovar los certificados. Los certificados proporcionados por ACM son gratuitos. Para obtener más información sobre ACM, consulte la Guía del usuario de AWS Certificate Manager.

Obtener un certificado de servidor

Puede recuperar un certificado de servidor llamando al método getServerCertificate de IamClient, pasando un objeto GetServerCertificateRequest con el nombre del certificado.

Importaciones

import software.amazon.awssdk.services.iam.model.GetServerCertificateRequest; import software.amazon.awssdk.services.iam.model.GetServerCertificateResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.IamException;

Código de

public static void getCertificate(IamClient iam,String certName ) { try { GetServerCertificateRequest request = GetServerCertificateRequest.builder() .serverCertificateName(certName) .build(); GetServerCertificateResponse response = iam.getServerCertificate(request); System.out.format("Successfully retrieved certificate with body %s", response.serverCertificate().certificateBody()); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en GitHub.

Elaborar listas de certificados de servidor

Para mostrar sus certificados de servidor, llame al método listServerCertificates de IamClient con un objeto ListServerCertificatesRequest. Este método devuelve un objeto ListServerCertificatesResponse.

Llame al método serverCertificateMetadataList del objeto ListServerCertificateResponse devuelto para obtener una lista de objetos ServerCertificateMetadata que puede usar para obtener información de cada certificado.

Los resultados pueden aparecer truncados; si el método ListServerCertificateResponse del objeto isTruncated devuelve true, llame al método ListServerCertificatesResponse del objeto marker y use el marcador para crear una nueva solicitud. Utilice la nueva solicitud para llamar de nuevo a listServerCertificates para obtener el siguiente lote de resultados.

Importaciones

import software.amazon.awssdk.services.iam.model.IamException; import software.amazon.awssdk.services.iam.model.ListServerCertificatesRequest; import software.amazon.awssdk.services.iam.model.ListServerCertificatesResponse; import software.amazon.awssdk.services.iam.model.ServerCertificateMetadata; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient;

Código de

public static void listCertificates(IamClient iam) { try { boolean done = false; String newMarker = null; while(!done) { ListServerCertificatesResponse response; if (newMarker == null) { ListServerCertificatesRequest request = ListServerCertificatesRequest.builder().build(); response = iam.listServerCertificates(request); } else { ListServerCertificatesRequest request = ListServerCertificatesRequest.builder() .marker(newMarker).build(); response = iam.listServerCertificates(request); } for(ServerCertificateMetadata metadata : response.serverCertificateMetadataList()) { System.out.printf("Retrieved server certificate %s", metadata.serverCertificateName()); } if(!response.isTruncated()) { done = true; } else { newMarker = response.marker(); } } } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en GitHub.

Actualizar un certificado de servidor

Puede actualizar el nombre o la ruta de un certificado de servidor llamando al método updateServerCertificate de IamClient. Este método toma un objeto UpdateServerCertificateRequest establecido con el nombre actual del certificado de servidor o el nuevo nombre o la nueva ruta que se va a usar.

Importaciones

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.IamException; import software.amazon.awssdk.services.iam.model.UpdateServerCertificateRequest; import software.amazon.awssdk.services.iam.model.UpdateServerCertificateResponse;

Código de

public static void updateCertificate(IamClient iam, String curName, String newName) { try { UpdateServerCertificateRequest request = UpdateServerCertificateRequest.builder() .serverCertificateName(curName) .newServerCertificateName(newName) .build(); UpdateServerCertificateResponse response = iam.updateServerCertificate(request); System.out.printf("Successfully updated server certificate to name %s", newName); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en GitHub.

Eliminar un certificado de servidor

Para eliminar un certificado de servidor, llame al método deleteServerCertificate de IamClient con un objeto DeleteServerCertificateRequest que contenga el nombre del certificado.

Importaciones

import software.amazon.awssdk.services.iam.model.DeleteServerCertificateRequest; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.IamException;

Código de

public static void deleteCert(IamClient iam,String certName ) { try { DeleteServerCertificateRequest request = DeleteServerCertificateRequest.builder() .serverCertificateName(certName) .build(); iam.deleteServerCertificate(request); System.out.println("Successfully deleted server certificate " + certName); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en GitHub.

Más información