There are more AWS SDK examples available in the AWS Doc SDK Examples
Use UploadServerCertificate
with an AWS SDK or CLI
The following code examples show how to use UploadServerCertificate
.
- CLI
-
- AWS CLI
-
To upload a server certificate to your AWS account
The following upload-server-certificate command uploads a server certificate to your AWS account. In this example, the certificate is in the file
public_key_cert_file.pem
, the associated private key is in the filemy_private_key.pem
, and the the certificate chain provided by the certificate authority (CA) is in themy_certificate_chain_file.pem
file. When the file has finished uploading, it is available under the name myServerCertificate. Parameters that begin withfile://
tells the command to read the contents of the file and use that as the parameter value instead of the file name itself.aws iam upload-server-certificate \ --server-certificate-name
myServerCertificate
\ --certificate-bodyfile://public_key_cert_file.pem
\ --private-keyfile://my_private_key.pem
\ --certificate-chainfile://my_certificate_chain_file.pem
Output:
{ "ServerCertificateMetadata": { "Path": "/", "ServerCertificateName": "myServerCertificate", "ServerCertificateId": "ASCAEXAMPLE123EXAMPLE", "Arn": "arn:aws:iam::1234567989012:server-certificate/myServerCertificate", "UploadDate": "2019-04-22T21:13:44+00:00", "Expiration": "2019-10-15T22:23:16+00:00" } }
For more information, see Creating, Uploading, and Deleting Server Certificates in the Using IAM guide.
-
For API details, see UploadServerCertificate
in AWS CLI Command Reference.
-
- JavaScript
-
- SDK for JavaScript (v3)
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. import { UploadServerCertificateCommand, IAMClient } from "@aws-sdk/client-iam"; import { readFileSync } from "node:fs"; import { dirnameFromMetaUrl } from "@aws-doc-sdk-examples/lib/utils/util-fs.js"; import * as path from "node:path"; const client = new IAMClient({}); const certMessage = `Generate a certificate and key with the following command, or the equivalent for your system. openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \ -keyout example.key -out example.crt -subj "/CN=example.com" \ -addext "subjectAltName=DNS:example.com,DNS:www.example.net,IP:10.0.0.1" `; const getCertAndKey = () => { try { const cert = readFileSync( path.join(dirnameFromMetaUrl(import.meta.url), "./example.crt"), ); const key = readFileSync( path.join(dirnameFromMetaUrl(import.meta.url), "./example.key"), ); return { cert, key }; } catch (err) { if (err.code === "ENOENT") { throw new Error( `Certificate and/or private key not found. ${certMessage}`, ); } throw err; } }; /** * * @param {string} certificateName */ export const uploadServerCertificate = (certificateName) => { const { cert, key } = getCertAndKey(); const command = new UploadServerCertificateCommand({ ServerCertificateName: certificateName, CertificateBody: cert.toString(), PrivateKey: key.toString(), }); return client.send(command); };
-
For API details, see UploadServerCertificate in AWS SDK for JavaScript API Reference.
-
- PowerShell
-
- Tools for PowerShell
-
Example 1: This example uploads a new server certificate to the IAM account. The files containing the certificate body, the private key, and (optionally) the certificate chain must all be PEM encoded. Note that the parameters require the actual content of the files rather than the file names. You must use the
-Raw
switch parameter to successfully process the file contents.Publish-IAMServerCertificate -ServerCertificateName MyTestCert -CertificateBody (Get-Content -Raw server.crt) -PrivateKey (Get-Content -Raw server.key)
Output:
Arn : arn:aws:iam::123456789012:server-certificate/MyTestCert Expiration : 1/14/2018 9:52:36 AM Path : / ServerCertificateId : ASCAJIEXAMPLE7J7HQZYW ServerCertificateName : MyTestCert UploadDate : 4/21/2015 11:14:16 AM
-
For API details, see UploadServerCertificate in AWS Tools for PowerShell Cmdlet Reference.
-