D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation ImportCertificate
avec un AWS SDK ou une CLI
Les exemples de code suivants illustrent comment utiliser ImportCertificate
.
Les exemples d’actions sont des extraits de code de programmes de plus grande envergure et doivent être exécutés en contexte. Vous pouvez voir cette action en contexte dans l’exemple de code suivant :
- C++
-
- SDK pour C++
-
Note
Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS
. //! Import an AWS Certificate Manager (ACM) certificate. /*! \param certificateFile: Path to certificate to import. \param privateKeyFile: Path to file containing a private key. \param certificateChainFile: Path to file containing a PEM encoded certificate chain. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::ACM::importCertificate(const Aws::String &certificateFile, const Aws::String &privateKeyFile, const Aws::String &certificateChainFile, const Aws::Client::ClientConfiguration &clientConfiguration) { std::ifstream certificateInStream(certificateFile.c_str()); if (!certificateInStream) { std::cerr << "Error: The certificate file '" << certificateFile << "' does not exist." << std::endl; return false; } std::ifstream privateKeyInstream(privateKeyFile.c_str()); if (!privateKeyInstream) { std::cerr << "Error: The private key file '" << privateKeyFile << "' does not exist." << std::endl; return false; } std::ifstream certificateChainInStream(certificateChainFile.c_str()); if (!certificateChainInStream) { std::cerr << "Error: The certificate chain file '" << certificateChainFile << "' does not exist." << std::endl; return false; } Aws::String certificate; certificate.assign(std::istreambuf_iterator<char>(certificateInStream), std::istreambuf_iterator<char>()); Aws::String privateKey; privateKey.assign(std::istreambuf_iterator<char>(privateKeyInstream), std::istreambuf_iterator<char>()); Aws::String certificateChain; certificateChain.assign(std::istreambuf_iterator<char>(certificateChainInStream), std::istreambuf_iterator<char>()); Aws::ACM::ACMClient acmClient(clientConfiguration); Aws::ACM::Model::ImportCertificateRequest request; request.WithCertificate(Aws::Utils::ByteBuffer((unsigned char *) certificate.c_str(), certificate.size())) .WithPrivateKey(Aws::Utils::ByteBuffer((unsigned char *) privateKey.c_str(), privateKey.size())) .WithCertificateChain(Aws::Utils::ByteBuffer((unsigned char *) certificateChain.c_str(), certificateChain.size())); Aws::ACM::Model::ImportCertificateOutcome outcome = acmClient.ImportCertificate(request); if (!outcome.IsSuccess()) { std::cerr << "Error: ImportCertificate: " << outcome.GetError().GetMessage() << std::endl; return false; } else { std::cout << "Success: Certificate associated with ARN '" << outcome.GetResult().GetCertificateArn() << "' imported." << std::endl; return true; } }
-
Pour plus de détails sur l'API, reportez-vous ImportCertificateà la section Référence des AWS SDK pour C++ API.
-
- CLI
-
- AWS CLI
-
Pour importer un certificat dans ACM.
La
import-certificate
commande suivante importe un certificat dans ACM. Remplacez les noms de fichiers par les vôtres :aws acm import-certificate --certificate
file://Certificate.pem
--certificate-chainfile://CertificateChain.pem
--private-keyfile://PrivateKey.pem
-
Pour plus de détails sur l'API, voir ImportCertificate
la section Référence des AWS CLI commandes.
-
- Java
-
- SDK pour Java 2.x
-
Note
Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS
. /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * <p> * For more information, see the following documentation topic: * <p> * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class ImportCert { public static void main(String[] args) { final String usage = """ Usage: <bucketName> <certificateKey> <privateKeyKey> Where: bucketName - The name of the S3 bucket containing the certificate and private key. certificateKey - The object key for the SSL/TLS certificate file in S3. privateKeyKey - The object key for the private key file in S3. """; //if (args.length != 3) { // System.out.println(usage); // return; // } String bucketName = "certbucket100" ; //args[0]; String certificateKey = "certificate.pem" ; // args[1]; String privateKeyKey = "private_key.pem" ; //args[2]; String certificateArn = importCertificate(bucketName, certificateKey, privateKeyKey); System.out.println("Certificate imported with ARN: " + certificateArn); } /** * Imports an SSL/TLS certificate and private key from S3 into AWS Certificate Manager (ACM). * * @param bucketName The name of the S3 bucket. * @param certificateKey The key for the SSL/TLS certificate file in S3. * @param privateKeyKey The key for the private key file in S3. * @return The ARN of the imported certificate. */ public static String importCertificate(String bucketName, String certificateKey, String privateKeyKey) { AcmClient acmClient = AcmClient.create(); S3Client s3Client = S3Client.create(); try { byte[] certificateBytes = downloadFileFromS3(s3Client, bucketName, certificateKey); byte[] privateKeyBytes = downloadFileFromS3(s3Client, bucketName, privateKeyKey); ImportCertificateRequest request = ImportCertificateRequest.builder() .certificate(SdkBytes.fromByteBuffer(ByteBuffer.wrap(certificateBytes))) .privateKey(SdkBytes.fromByteBuffer(ByteBuffer.wrap(privateKeyBytes))) .build(); ImportCertificateResponse response = acmClient.importCertificate(request); return response.certificateArn(); } catch (IOException e) { System.err.println("Error downloading certificate or private key from S3: " + e.getMessage()); } catch (S3Exception e) { System.err.println("S3 error: " + e.awsErrorDetails().errorMessage()); } return ""; } /** * Downloads a file from Amazon S3 and returns its contents as a byte array. * * @param s3Client The S3 client. * @param bucketName The name of the S3 bucket. * @param objectKey The key of the object in S3. * @return The file contents as a byte array. * @throws IOException If an I/O error occurs. */ private static byte[] downloadFileFromS3(S3Client s3Client, String bucketName, String objectKey) throws IOException { GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket(bucketName) .key(objectKey) .build(); try (ResponseInputStream<GetObjectResponse> s3Object = s3Client.getObject(getObjectRequest); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { IoUtils.copy(s3Object, byteArrayOutputStream); return byteArrayOutputStream.toByteArray(); } } }
-
Pour plus de détails sur l'API, reportez-vous ImportCertificateà la section Référence des AWS SDK for Java 2.x API.
-
- Python
-
- SDK pour Python (Boto3)
-
Note
Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS
. class AcmCertificate: """ Encapsulates ACM functions. """ def __init__(self, acm_client): """ :param acm_client: A Boto3 ACM client. """ self.acm_client = acm_client def import_certificate(self, certificate_body, private_key): """ Imports a self-signed certificate to ACM. :param certificate_body: The body of the certificate, in PEM format. :param private_key: The unencrypted private key of the certificate, in PEM format. :return: The ARN of the imported certificate. """ try: response = self.acm_client.import_certificate( Certificate=certificate_body, PrivateKey=private_key ) certificate_arn = response["CertificateArn"] logger.info("Imported certificate.") except ClientError: logger.exception("Couldn't import certificate.") raise else: return certificate_arn
-
Pour plus de détails sur l'API, consultez ImportCertificatele AWS manuel de référence de l'API SDK for Python (Boto3).
-