Lire en anglais

Partager via


Ressource de certificat

Les certificats fournissent le mécanisme permettant aux serveurs web de prouver leur identité ainsi que les canaux de communication sécurisés. L’API de certificats est essentielle pour créer des sites web qui servent du contenu via HTTPS.

GET/api/certificates/{id}

{
    "alias": "My Self Signed Certificate",
    "id": "{id}",
    "issued_by": "CN=localhost",
    "subject": "CN=localhost",
    "thumbprint": "1E927A29E966FA11A7C469BC565A9E00B11F5F95",
    "signature_algorithm": "sha256RSA",
    "valid_from": "2017-04-12T11:26:26Z",
    "valid_to": "2019-04-12T11:26:26Z",
    "version": "3",
    "intended_purposes": [
        "Client Authentication",
        "Server Authentication"
    ],
    "private_key": {
        "exportable": "false"
    },
    "subject_alternative_names": [
        "DNS Name=localhost",
        "DNS Name=my-work-pc"
    ],
    "store": {
        "name": "My",
        "id": "{store-id}",
        "_links": {
            "self": {
                "href": "/api/certificates/stores/{store-id}"
            }
        }
    }
}

Demandes de plage

Il n’est pas rare qu’un serveur web ait une très grande quantité de certificats. Pour améliorer la facilité d’utilisation de l’API de certificats pour ces serveurs, le point de terminaison prend en charge les demandes de plage. L’envoi d’une demande HEAD au point de terminaison de certificats invite le serveur à répondre avec le nombre total de certificats disponibles dans l’en-tête HTTP X-Total-Count. Les certificats peuvent ensuite être demandés en blocs en définissant l’en-tête plage dans les requêtes suivantes.

HEAD/api/certificates

200 OK
x-total-count: 100

Retentant les deuxième et troisième certificats sur 100

GET /api/certificates
Access-Token: Bearer {Access-Token}
Range: certificates=1-2

Magasins de certificats

Tous les certificats appartiennent à un magasin de certificats. Une liste des magasins de certificats disponibles peut être retendue à partir du point de terminaison des magasins de certificats /api/certificates/stores. Ces magasins de certificats ont une revendication propriété qui spécifie les opérations autorisées sur les certificats à l’intérieur du magasin. Cet accès est configurable via la section certificats des paramètres d’application fichier. Actuellement, les magasins de certificats prennent uniquement en charge les opérations de lecture. À l’avenir, l’API peut prendre en charge l’importation, l’exportation, la suppression et la création de certificats.

GET/api/certificates/stores

{
    "stores": [
        {
            "name": "My",
            "id": "{store-id}",
            "_links": {
                "self": {
                    "href": "/api/certificates/stores/{store-id}"
                }
            }
        },
        {
            "name": "WebHosting",
            "id": "{store-id}"
            // _links omitted
        },
        {
            "name": "IIS Central Certificate Store",
            "id": "{store-id}"
            // _links omitted
        }
    ]
}

Liste des certificats pour un magasin spécifique

L’API certificats prend en charge le filtrage des certificats par magasin. Pour ce faire, l’ID de propriété du magasin de certificats cible doit être retenté. Cette opération peut être effectuée via le point de terminaison du magasin de certificats. Ensuite, une requête doit être adressée au point de terminaison de certificats qui spécifie le champ store.id dans la chaîne de requête. La demande suivante réexécive tous les certificats pour le magasin de certificats intégré hébergement web.

GET/api/certificates ?store.id={store-id}

{
    "certificates": [
        {
            "alias": "WebHostCert",
            "id": "{cert-id}",
            "issued_by": "CN=localhost",
            "subject": "CN=localhost",
            "thumbprint": "8E7933F41998C507B30F0E0AC8B548A903FE7843",
            "valid_to": "2019-02-28T14:32:33Z",
            "_links": {
                "self": {
                    "href": "/api/certificates/{cert-id}"
                }
            }
        }
    ]
}