

# Working with IAM server certificates with Amazon SDK for PHP Version 3
<a name="iam-examples-working-with-certs"></a>

To enable HTTPS connections to your website or application on Amazon, you need an SSL/TLS server certificate. To use a certificate that you obtained from an external provider with your website or application on Amazon, you must upload the certificate to IAM or import it into Amazon Certificate Manager.

The following examples show how to:
+ List the certificates stored in IAM using [ListServerCertificates](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-iam-2010-05-08.html#listservercertificates).
+ Retrieve information about a certificate using [GetServerCertificate](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-iam-2010-05-08.html#getservercertificate).
+ Update a certificate using [UpdateServerCertificate](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-iam-2010-05-08.html#updateservercertificate).
+ Delete a certificate using [DeleteServerCertificate](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-iam-2010-05-08.html#deleteservercertificate).

All the example code for the Amazon SDK for PHP is available [here on GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credentials
<a name="examplecredentials"></a>

Before running the example code, configure your Amazon credentials, as described in [Authenticating with Amazon using Amazon SDK for PHP Version 3](credentials.md). Then import the Amazon SDK for PHP, as described in [Installing the Amazon SDK for PHP Version 3](getting-started_installation.md).

## List server certificates
<a name="list-server-certificates"></a>

 **Imports** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Iam\IamClient;
```

 **Sample Code** 

```
$client = new IamClient([
    'profile' => 'default',
    'region' => 'us-west-2',
    'version' => '2010-05-08'
]);

try {
    $result = $client->listServerCertificates();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Retrieve a server certificate
<a name="retrieve-a-server-certificate"></a>

 **Imports** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Iam\IamClient;
```

 **Sample Code** 

```
$client = new IamClient([
    'profile' => 'default',
    'region' => 'us-west-2',
    'version' => '2010-05-08'
]);

try {
    $result = $client->getServerCertificate([
        // ServerCertificateName is required
        'ServerCertificateName' => 'string',
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Update a server certificate
<a name="update-a-server-certificate"></a>

 **Imports** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Iam\IamClient;
```

 **Sample Code** 

```
$client = new IamClient([
    'profile' => 'default',
    'region' => 'us-west-2',
    'version' => '2010-05-08'
]);

try {
    $result = $client->updateServerCertificate([
        // ServerCertificateName is required
        'ServerCertificateName' => 'string',
        'NewServerCertificateName' => 'string',
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Delete a server certificate
<a name="delete-a-server-certificate"></a>

 **Imports** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Iam\IamClient;
```

 **Sample Code** 

```
$client = new IamClient([
    'profile' => 'default',
    'region' => 'us-west-2',
    'version' => '2010-05-08'
]);

try {
    $result = $client->deleteServerCertificate([
        // ServerCertificateName is required
        'ServerCertificateName' => 'string',
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```