API SWS de SSL.com - Introduction

La gestion d'un grand nombre de certificats peut être assez compliquée. Incidents aléatoires, tels que les récents événements problème d'entropie du numéro de série, peut exiger des administrateurs qu'ils révoquent et réémettent manuellement des centaines de certificats à la fois. Nos propres agents de support et administrateurs en ont également fait l'expérience dans le passé, ce qui a motivé SSL.com à mettre en œuvre une solution plus pratique: le API des services Web SSL.com (SWS).

L'API SWS peut être utilisée pour automatiser diverses opérations liées aux certificats, telles que l'émission de certificats, la recomposition des commandes et le retraitement des commandes, la gestion de l'accès des utilisateurs, etc. via n'importe quel langage de programmation ou de script. Pour obtenir des commandes cURL d'API prégénérées pour une commande individuelle, essayez d'ajouter /developer à la fin de cette page de commande de certificat (par exemple https://www.ssl.com/certificate_orders/co-1234xyz/developer).

Pour présenter certaines des fonctionnalités de l'API, ce tutoriel vous guidera tout au long de l'émission d'un certificat de serveur Web (DV) validé par domaine. Dans le processus, nous aborderons de nombreux sujets utiles, tels que l'accès à l'API, la création d'un CSRet la préparation de votre serveur pour la validation du contrôle de domaine. De plus, nous verrons comment nous pouvons révoquer des certificats en masse via l'API, ce qui est particulièrement utile en cas d'incidents de sécurité.

Le bac à sable

Tout type d'automatisation nécessite des tests approfondis avant le lancement dans un système de production, en particulier lorsqu'il s'agit d'argent. Pour cette raison, SSL.com a mis en œuvre et maintient le Sandbox. Le Sandbox est un clone de développement de notre API de production. Il contient toutes les fonctionnalités de l'original, mais n'est pas connecté à la base de données de production. Cela signifie que vous pouvez créer de nouveaux utilisateurs et expérimenter librement sans craindre de gâcher quelque chose et d'être facturé pour une erreur.

Lorsque vous êtes convaincu que votre automatisation fonctionne correctement dans le bac à sable, vous pouvez ensuite déplacer votre code en production et être certain que vos scripts n'échoueront pas.

NOTE: Cet article a été développé pour le Sandbox, et vous pouvez expérimenter avec n'importe quel appel d'API contenu dans ce document.

L'API de production se trouve dans l'URL suivante:

https://sws.sslpki.com/

Pour effectuer des appels d'API vers le bac à sable, il vous suffit de modifier le nom de domaine comme indiqué dans l'extrait de code suivant:

https://sws-test.sslpki.com/

Préparer l'environnement

Avant de commencer à jouer avec l'API, vous devez d'abord préparer un environnement de travail. Les outils que nous utiliserons tout au long de ce didacticiel sont un terminal Linux et votre fidèle éditeur de texte.

NOTE: Ces instructions ont été écrites pour la vanille Ubuntu Linux distribution, qui est un environnement de développement typique que l'on peut rencontrer dans le monde réel. Cela dit, les scripts fournis dans ce document fonctionnent également sous Windows via Cygwin.

La première chose dont vous aurez besoin est un répertoire pour tous les fichiers nécessaires. Par souci d'utilité, nous appellerons ce répertoire sslcom_api_test/ ou «le répertoire de travail». Pour créer et entrer le répertoire, veuillez lancer les commandes suivantes dans le terminal.

$ mkdir ~ / sslcom_api_test $ cd ~ / sslcom_api_test

Ensuite, vous devez télécharger Bundle de certificats intermédiaires de SSL.com, qui est un fichier d'archive contenant tous les fichiers de certificats nécessaires pour accéder en toute sécurité à l'API. De cette façon, toutes les données que vous échangez avec le serveur API seront cryptées et vous pouvez être assuré que toutes les informations sensibles, telles que les clés API, seront protégées contre les écoutes.

Téléchargez l'archive ZIP à partir du lien ci-dessus et décompressez-la dans le répertoire de travail. (Assurez-vous que vous changez ~/Downloads dans le répertoire où vous avez enregistré le fichier ZIP, si nécessaire). Le fichier de certificat que nous utiliserons tout au long de cet article est SSL_COM_RSA_SSL_SUBCA.crt.

NOTE: Sous Windows, vous devrez localiser l'archive ZIP, double-cliquer dessus et extraire les fichiers dans le répertoire de travail.
$ unzip ~ / Téléchargements / SSLcom_DV_CA_Zip.zip -d. Archive: ./SSLcom_DV_CA_Zip.zip extraction: ./SSL_COM_RSA_SSL_SUBCA.crt extraction: ./SSL_COM_ROOT_CERTIFICATION_AUTHORITY_RSA.crt extraction: ./CERTUM_TRUSTED_NETWORK_CA.crt

Nous utiliserons cURL, un outil réseau Linux typique, pour tous les appels d'API de ce didacticiel. cURL peut effectuer n'importe quelle opération HTTP et est installé par défaut dans la plupart des distributions Linux. De plus, cURL peut être facilement installé sur Windows via les exécutables binaires fournis dans la page du projet cURL, ou en le sélectionnant dans le programme d'installation de Cygwin. Cependant, veuillez noter que puisque l'API est basée sur des formats ouverts, vous pouvez utiliser presque n'importe quel autre outil réseau ou langage de programmation pour y accéder.

De plus, nous allons utiliser OpenSSL pour préparer notre commande de certificat. OpenSSL est un kit d'outils open source qui peut effectuer presque toutes les opérations cryptographiques dont vous pourriez avoir besoin. Cet outil est également inclus dans la liste des packages Cygwin, vous pouvez donc soit le sélectionner pour l'installation lors de la configuration de votre instance Cygwin, soit l'installer manuellement via les fichiers binaires fournis dans la page d'accueil du projet.

Enfin, vous aurez besoin de deux clés API pour travailler avec le Sandbox, qui sont associées à votre compte utilisateur. Si vous n'avez pas encore de compte dans le Sandbox, veuillez vous inscrire via le Sandbox  formulaire d'inscription en ligne. Le processus est identique à la création d'un compte client SSL.com normal. Si vous avez déjà un compte dans le bac à sable, vous pouvez ignorer cette étape en toute sécurité.

Accéder à l'API

Notre API SWS est basée sur HTTP (les navigateurs de protocole utilisent), et toutes les données sont échangées dans le Format JSON.

La majorité des appels API vous obligera à inclure un account_key et secret_key paramètre à des fins d'autorisation. Vous pouvez toujours trouver les informations d'identification de votre compte dans la page Tableau de bord de Sandbox, bien que dans ce cas, nous allons les récupérer via l'API.

La commande répertoriée dans le prochain extrait de code vous connectera au portail et récupérera les informations de votre compte, y compris ces clés API. Si vous copiez et collez la commande dans une fenêtre de terminal, assurez-vous de remplacer USERNAME et PASSWORD avec les informations d'identification de votre compte.

$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET --data-urlencode 'password=MOT DE PASSE' \ 'https://sws-test.sslpki.com/user/USERNAME' { "login": "JDemo", "email": "jdemo@mailinator.com", "numéro_de_compte": "abc-1ec6012", "clé_de_compte": "4497618e5c98", "clé_secret": "FY+s9/ghUrv7SQ==", "status": "activé", "url_utilisateur": "https://sws-test.sslpki.com/users/1322857", "fonds_disponibles": "0.00 $" }

Bien que Syntaxe de cURL est assez simple, nous allons vous familiariser avec cela en examinant en détail l'appel précédent.

  • -L demande à cURL de suivre toutes les redirections HTTP. Vous devez inclure cette option dans tous les appels pour éviter tout problème.
  • --cacert SSL_COM_RSA_SSL_SUBCA.crt charge cURL pour valider le certificat du serveur API, avec le certificat que nous avons téléchargé dans le bundle. Cela permettra à cURL de crypter toutes les données envoyées au serveur.
  • --request GET indique à cURL d'effectuer une requête HTTP GET. Certains appels n'acceptent que les requêtes HTTP POST ou PUT. Cette option est le moyen de gérer de telles demandes.
  • --data-urlencode prépare le mot de passe du compte à transmettre au serveur. Les requêtes GET peuvent inclure des paramètres dans l'URL, tandis que les requêtes PUT et POST incluent uniquement des paramètres dans le corps. Étant donné que le mot de passe sera transmis via l'URL, nous devons le coder pour échapper à tout symbole (par exemple / , ? or # ) qui pourrait perturber le serveur. Ce processus est appelé Encodage d'URL.
NOTE: La barre oblique inverse (\) à la fin de la première ligne force le terminal Linux à ignorer un caractère de nouvelle ligne et à continuer d'analyser les caractères de la ligne suivante dans le cadre de la commande d'origine. Nous utiliserons cette syntaxe pour diviser les commandes longues en plusieurs lignes, afin de les rendre plus présentables.

Le résultat de l'appel d'API est un objet JSON contenant des informations de compte, y compris le account_key et secret_key, requis dans les appels d'API suivants.

Émettre un certificat de serveur

Après avoir préparé l'environnement de travail et obtenu les clés de l'API, vous êtes maintenant prêt à commencer à jouer avec l'API. À titre d'exemple, nous demanderons l'émission d'un Certificat SSL de base pour un serveur Web imaginaire nommé example.ssl.com. Que vous utilisiez l'API ou le portail client, la délivrance d'un certificat nécessite de suivre certaines étapes.

Ces étapes incluent la génération d'une paire de clés privée et publique, la création d'un demande de signature de certificat (CSR), création d'une commande de certificat et exécution du validation du contrôle de domaine.

Générer le CSR

Il y a plusieurs méthodes créer un CSR, cependant puisque nous utilisons déjà le terminal, voyons comment créer un CSR avec OpenSSL. Si vous avez déjà un CSR vous pouvez utiliser à cette fin, vous pouvez ignorer cette étape.

A CSR est un fichier encodé en base64 qui contient la plupart des informations qui seront incluses dans le fichier de certificat final. Parmi ses contenus les plus importants figurent Clé publique et du nom de domaine du serveur le certificat sera délivré pour.

Cela signifie que nous allons avoir besoin d'une paire de clés publiques avant d'émettre un CSR. La commande suivante créera un nouveau PEM fichier dans le répertoire de travail, nommé example.ssl.com.key, contenant les deux clés.

$ openssl genrsa -out example.ssl.com.key 2048 Génération de la clé privée RSA, module de 2048 bits ................... +++ ...... .................................................. ...... +++ e est 65537 (0x010001)

En utilisant la paire de clés, OpenSSL peut désormais générer un CSR pour vous. Pour ce faire, veuillez utiliser la commande indiquée dans l'extrait de code suivant.

$ openssl req -new -key example.ssl.com.key -out example.ssl.com.csr On vous demandera bientôt de saisir des informations qui seront incorporées dans votre demande de certificat. Ce que vous êtes sur le point de saisir est ce qu'on appelle un nom distinctif ou un DN. Il y a un certain nombre de champs, mais vous pouvez en laisser certains vides. Certains champs auront une valeur par défaut. Si vous saisissez '.', le champ sera laissé vide. ----- Nom du pays (code à 2 lettres) [AU] : Nom de l'État ou de la province des États-Unis (nom complet) [Some-State] : Nom de la localité du Texas (par exemple, ville) [] : Nom de l'organisation Houston (par exemple, entreprise) [Internet Widgits Pty Ltd] : Exemple de nom d'unité organisationnelle (par exemple, section) [] : Exemple de nom commun du département (par exemple, FQDN du serveur ou VOTRE nom) [] : exemple.ssl.com Adresse e-mail [] : admin@exemple.ssl.com Veuillez saisir les attributs « supplémentaires » suivants à envoyer avec votre demande de certificat Un mot de passe de défi [] : Un nom d'entreprise facultatif [] :

OpenSSL vous posera des questions sur vos coordonnées de base et les Nom commun du certificat. Pour les certificats SSL, le nom commun est le nom de domaine du serveur (dans ce cas example.ssl.com). L'exécution de la commande ci-dessus créera un fichier nommé example.ssl.com.csr, dans le répertoire courant contenant le codé en base64 CSR.

$ cat example.ssl.com.csr 

-----BEGIN CERTIFICATE REQUEST-----
MIIC5DCCAcwCAQAwgZ4xCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G
A1UEBwwHSG91c3RvbjEQMA4GA1UECgwHRXhhbXBsZTEbMBkGA1UECwwSRXhhbXBs
ZSBEZXBhcnRtZW50MRgwFgYDVQQDDA9leGFtcGxlLnNzbC5jb20xJDAiBgkqhkiG
9w0BCQEWFWFkbWluQGV4YW1wbGUuc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAN7XMG7+zhaGfimdD1F0P3xxUS8dC6knKId3ONEt14Wa5E62
ZIUkyNgQC7gd3Be31jBhcuzJKn8UbTcWnPXd3OCbznbkqXtnljiF3yN9cRnj2f7y
89Hfmje8C07xe6AsoUMSTYzwsoo3zai1bxOUhy+uDU8FzxcSHunepdx/naHXY1Md
waQwzBCp668hFeIOslEjkTCNle3HK1LrgjZCIg0tyHBuZTNuUcQOyXrrDSrtOxx8
dqOD7sYqJie2xiCC9kkpNGYYTEuCuVKidgiC3e/DuLUNbhoUMfSENv64TGA7lRIj
nEBrrEm6FOSgPEGgEsM78cexVaqNCavNXNy49ysCAwEAAaAAMA0GCSqGSIb3DQEB
CwUAA4IBAQAV1Ac9nYH64BrB4OHlOYPkZbK6qCKfipTg7s4Xdcc3TponjTnMJyaQ
NNh0koCUOFJaYPjWIk/YkCeGNv/fbce+sddNbh0jtcVTPw8EFvs53IaUAE99zDvn
577Azj+OXfmaLQXjK15BtnT5hbmRKsrpPxnAdk4NOohM7QKWNEdBrcfTuH1q3WpD
6jSD35FlIFUfMgNi34mxF4vYamGrWgdURIb7DCk2h7B2LQK+vRNx1uPm9FVSeYZc
tHZWTiw2xEExw2Qco6lqXYl8t0Eo07gYl4gAEx9bibvVqYMo3Zss1mRg6+WEB8Xs
G+Hn1TG3XIaIbmvlpRNma/l766KZwLXG
-----END CERTIFICATE REQUEST-----

Créer la commande de certificat

Ayant obtenu le CSR, vous êtes maintenant prêt à créer une commande de certificat via l'API. Le premier appel d'API que nous avons examiné était une requête GET, alors que celle-ci est un POST. Les requêtes POST doivent inclure tous les paramètres dans leur corps en tant qu'objets JSON. Par conséquent, vous devez formater les paramètres de l'ordre des certificats dans JSON. Une configuration JSON pour cet exemple peut être trouvée dans l'extrait de code suivant.

{ "account_key": "4497618e5c98", "secret_key": "FY+s9/ghUrv7SQ==", "product": "106", "period": "365", "server_software": "15", "organization_name": "Exemple", "street_address_1": "Exemple de rue", "locality_name": "Houston", "state_or_province_name": "Texas", "postal_code": "77777", "country_name": "US", "duns_number": "1234567", "company_number": "Exemple de numéro", "registered_country_name": "US", "unique_value": "1ed1c72baf", "csr":"-----BEGIN CERTIFICATE REQUEST-----MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE=-----FIN DE LA DEMANDE DE CERTIFICAT-----" }

Nous avons déjà vu les clés API auparavant. Cependant, pour commander des certificats, nous devons également inclure des paramètres supplémentaires tels que le product ID et validité period. Vous pouvez trouver une liste des ID de produit dans le Documentation de l'API SWS. Dans cet exemple, la commande porte sur un certificat SSL de base avec une période de validité de 1 an. Le groupe de paramètres suivant stocke les informations de contact sur le titulaire (c'est vous). le unique_value paramètre (facultatif), contient une chaîne alphanumérique qui garantit l'unicité de la demande. Si vous ne fournissez pas de valeur unique, une valeur aléatoire sera générée pour vous. Spécifier une valeur unique de cette manière est utile si vous souhaitez générer des fichiers DCV ou des entrées CNAME en dehors du portail utilisateur de SSL.com. Finalement, le csr le paramètre doit contenir un encodage base64 valide CSR, comme celui dans lequel nous avons enregistré example.ssl.com.csr.

Remplacez les paramètres par les valeurs de votre choix coordonnées et CSRet enregistrez cette configuration JSON dans un fichier nommé example.ssl.com.json.

Remarque : Veuillez vous assurer que vous avez supprimé tous les caractères de nouvelle ligne du CSR avant de l'ajouter à la commande. Les nouvelles lignes sont utilisées pour demander au terminal de traiter le texte saisi jusqu'au caractère de nouvelle ligne. Laisser les caractères dans pourrait faire échouer vos commandes cURL.

Avec tout configuré, vous êtes maintenant prêt à créer votre commande. cURL accepte les paramètres JSON soit sous forme de chaîne en ligne, soit via un nom de fichier. La première option étant trop détaillée, passons plutôt le nom du fichier.

Veuillez prendre note des --data-binary cURL, qui demande à cURL d'inclure le contenu du fichier dans le corps de la requête POST.

$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt --request POST --header "Content-Type: application/json" \ --data-binary "@example.ssl.com.json" 'https://sws-test.sslpki.com/certificates' { "ref": "co-ac1ecm200", "registrant": { "organization": "Example", "organization_unit": null, "street_address_1": "Example st", "street_address_2": null, "street_address_3": null, "locality": "Houston", "state_or_province": "Texas", "post_office_box": null, "postal_code": "77777", "country": "US", "email": null }, "order_status": "validation requise", "validations": null, "order_amount": "49.00 $", "url_certificat": "https://sandbox.ssl.com/team/abc-1ec6012/commandes_certificat/co-ac1ecm200", "url_reçu": "https://sandbox.ssl.com/team/abc-1ec6012/commandes/fe3b-1ecm201", "url_scellé_intelligent": "https://sandbox.ssl.com/team/abc-1ec6012/commandes_certificat/co-ac1ecm200/sceau_site", "url_validation": "https://sandbox.ssl.com/team/abc-1ec6012/commandes_certificat/co-ac1ecm200/validation", "numéro_commande_externe": null, "certificats": null }

Le résultat de l'opération est un autre objet JSON qui contient les détails de la commande de certificats nouvellement créée. On peut voir son order_statuset son numéro de référence dans le ref paramètre utilisé pour référencer cet ordre dans tous les appels d'API suivants. De plus, la sortie contient diverses URL, telles que le certificate_url, qui pointe vers les détails de la commande dans le portail et le validation_url, qui pointe vers la page de validation de la commande.

Enfin, certificates contiendra tous les certificats associés à la commande. La commande n'ayant pas encore été validée, aucun certificat n'a été créé.

Validation du contrôle de domaine

Comme indiqué dans la commande de certificat order_status of validation required, vous devez effectuer la validation avant de délivrer un certificat.

Les autorités de certification de confiance publique (telles que SSL.com) sont tenues de vérifier que l'acheteur du certificat contrôle bien le serveur pour lequel le certificat sera émis avant de leur délivrer des certificats. Cela peut être accompli grâce à plusieurs méthodes, et vous pouvez afficher toutes les méthodes de validation disponibles pour une commande spécifique via ce prochain appel d'API.

Veuillez vous assurer de remplacer le numéro de référence co-ac1ecm200 dans l'URL avec le numéro de référence de votre commande, qui a été générée lors de l'appel API précédent.

$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET \ --data-urlencode 'secret_key=FY+s9/ghUrv7SQ==' --data-urlencode 'account_key=4497618e5c98' \ 'https://sws-test.sslpki.com/certificate/co-ac1ecm200/validations/methods' { "instructions": "https://www.ssl.com/faqs/ssl-dv-validation-requirements/", "md5_hash": "29BD4C00B65613CCEC04C19C0050D931", "sha2_hash": "BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9D751", "dns_sha2_hash": "BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.167c8a5c49", "dcv_methods": { "exemple.ssl.com": { "adresses_email": [ "admin@ssl.com", "administrateur@ssl.com", "webmaster@ssl.com", "hôte@ssl.com", "postmaster@ssl.com", "admin@exemple.ssl.com", "administrateur@exemple.ssl.com", "webmaster@exemple.ssl.com", "hôte@exemple.ssl.com", "postmaster@exemple.ssl.com" ], "http_csr_hash": { "http": "http://exemple.ssl.com/.well-known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt", "allow_https": "true", "contenu": "BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9D751\nssl.com\n167c8a5c49" }, "cname_csr_hash": { "cname": "_29BD4C00B65613CCEC04C19C0050D931.exemple.ssl.com. CNAME ff8716e0fd.ssl.com.", "nom": "_29BD4C00B65613CCEC04C19C0050D931.exemple.ssl.com", "valeur": "BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.ff8716e0fd.ssl.com." } } }, "ca_tag": "ssl.com" }

La sortie renvoyée comprendra toutes les informations dont vous avez besoin pour effectuer la validation du contrôle de domaine. Par exemple, si vous souhaitez utiliser le http_csr_hash  méthode de validation, vous devez créer un fichier sur le serveur pour lequel ce certificat sera émis, nommé .well_known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt. Le fichier doit exactement contenir la valeur du contents paramètre.

Ensuite, vous pouvez visiter le validation_url trouvé dans l'appel précédent qui a créé la commande et procéder à la validation comme vous le feriez normalement avec une commande que vous avez créée via votre portail client. (Vous pouvez toujours visiter le Validation page et trouver l'URL de la commande spécifique).

Une fois la validation du contrôle de domaine réussie, le certificat sera émis et vous pourrez le télécharger.

Récupérer le certificat

Vous pouvez trouver votre certificat sur le portail Web ou le récupérer via l'API. Pour nos besoins, nous utiliserons l'API. Comme vu dans la section précédente, lors de la création d'une nouvelle commande de certificat, la réponse contient un numéro de référence. Ce numéro peut être utilisé pour récupérer les détails de la commande, y compris les données réelles du certificat.

$ curl --request GET -L --cacert SSL_COM_RSA_SSL_SUBCA.crt \ --data-urlencode 'secret_key=FY+s9/ghUrv7SQ==' --data-urlencode 'account_key=4497618e5c98' \ 'https://sws-test.sslpki.com/certificate/co-ac1ecm200?response_type=individually&response_encoding=base64' { "description": "SSL de base 1 an", "produit": "106", "nom_produit": "basicssl", "statut_commande": "émis", "date_commande": "2019-05-02T10:08:48.000-05:00", "inscrit": { "organisation": "Exemple", "unité_organisation": null, "adresse_rue_1": "Exemple st", "street_address_2": null, "street_address_3": null, "locality": "Houston", "state_or_province": "Texas", "post_office_box": null, "postal_code": "77777", "country": "US", "email": null }, "certificats": "\nMIIE1TCCA72gAwIBAgIRANsjhF+t ... 4CAw5Egg73IgIHggE1QEZiYQRu+0wDQY\n", "common_name": "example.ssl.com", "domains_qty_purchased": "1", "wildcard_qty_purchased": "0", "subject_alternative_names": [ "example.ssl.com", "www.example.ssl.com" ], "validations": null, "effective_date": "2019-05-03T11:22:37.000-05:00", "expiration_date": "2020-05-02T11:22:37.000-05:00", "algorithm": "SHA256", "external_order_number": null, "domains": null, "site_seal_code": null, "subscriber_agreement": null, "server_software": 15, "contacts": [ { ... }, { ... }] }

Étant donné que l'API est destinée à être utilisée par programme, vous devez analyser la réponse JSON afin d'isoler le certificat et de l'enregistrer dans un fichier. L'analyse JSON dépasse le cadre de cet article; cependant, c'est une tâche simple qui peut être facilement implémentée dans la plupart des langages de script ou de programmation modernes.

Si vous n'avez pas le numéro de référence sous la main, vous pouvez émettre un appel API pour récupérer toutes les commandes de certificats de votre compte. Cet appel vous permet de filtrer les commandes, ainsi que les informations qui seront affichées.

$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET \ --data-urlencode 'secret_key=FY+s9/ghUrv7SQ==' --data-urlencode 'account_key=4497618e5c98' \ 'https://sws-test.sslpki.com/certificates?fields=domains,ref,order_status' [ { "ref": "co-ac1ecm200", "order_status": "issued", "domains": [ "example.ssl.com" ] }, { "ref": "co-581eclsap", "order_status": "validation, veuillez patienter", "domains": [ "example.ssl.com" ] }, { "ref": "co-6f1ecm1of", "order_status": "en attente des informations de contact du client", "domaines": [ "test.ssl.com" ] } }

La fields Le paramètre URL vous permet de contrôler les détails du certificat qui seront affichés dans la sortie. Vous pouvez en outre paginer via le per_page et page paramètres de requête. Pour limiter le nombre de certificats en fonction de leurs dates d'émission, vous pouvez utiliser start et end paramètres. Enfin, vous pouvez filtrer et rechercher les commandes en utilisant des critères tels que l'ID du produit, la date d'expiration ou tout autre champ contenu dans le certificat. Pour plus d'informations, consultez Documentation de l'API SSL.com.

Révoquer le certificat

La dernière fonctionnalité que nous allons examiner dans ce guide est la révocation de certificats en masse. Les certificats peuvent vous protéger tant que vous seul (ou des personnes de confiance) détenez la clé privée qui leur est associée. Si une clé privée est compromise ou si des informations sur le certificat doivent être modifiées, le certificat doit être immédiatement révoqué et une nouvelle doit être émise.

Dans les cas où la clé privée est soupçonnée d'être volée, il est impératif que les logiciels clients (tels que les navigateurs ou les systèmes d'exploitation) cessent de l'accepter aussi valide que possible. Pour cette raison, nous vous recommandons fortement d'implémenter un système automatisé de révocation, de réémission, de récupération et d'installation de certificats sur vos serveurs.

L'API SWS de SSL.com vous permet de révoquer par programme un, plusieurs ou tous les certificats sous l'une de vos commandes de certificats. L'appel API suivant révoquera tous les certificats sous l'ordre des certificats co-ac1ecm200:

curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request DELETE --header "Content-Type: application/json" \ --data-binary '{"account_key":"4497618e5c98","secret_key":"FY+s9/ghUrv7SQ==","reason":"volé"}' \ 'https://sws.sslpki.com/certificate/co-ac1ecm200' { "status":"révoqué" }

Cette commande cURL émet une requête HTTP DELETE (au lieu d'une commande GET ou POST comme les commandes précédentes) et fournit la configuration JSON en ligne. Il est également valide de créer un fichier avec le contenu JSON et de le transmettre à cURL via nom de fichier de la même manière que la commande qui a émis l'ordre de certificat.

Vous pouvez spécifier la raison que vous souhaitez dans le reason  et peut éventuellement inclure une liste de numéros de série de certificats dans le JSON pour révoquer uniquement les certificats correspondant à ces séries. Si aucun numéro de série n'est inclus, tous les certificats appartenant à l'ordre de certificat spécifié seront révoqués.

Pour plus d'informations sur cet appel API, veuillez consulter notre Documentation de l'API.

Conclusion

Cet article décrit un processus simple pour émettre et révoquer un certificat de serveur DV, à titre d'exemple simpliste des opérations que vous pouvez effectuer via l'API SWS de SSL.com. Chez SSL.com, nous encourageons l'utilisation de l'automatisation lorsque cela est possible, car elle supprime les tracas liés à l'exécution manuelle des mêmes tâches répétitives et, plus important encore, permet des temps de réponse plus rapides en cas d'urgence (voir le problème d'entropie du numéro de série).

N'hésitez pas à expérimenter avec notre Sandbox et API SWS, et n'hésitez pas à contacter nos agents de support si vous rencontrez des problèmes.

Merci d'avoir choisi SSL.com! Si vous avez des questions, veuillez nous contacter par e-mail à Support@SSL.com, appel 1-877-SSL-SECURE, ou cliquez simplement sur le lien de discussion en bas à droite de cette page. Vous pouvez également trouver des réponses à de nombreuses questions d'assistance courantes dans notre knowledgebase.
Twitter
Facebook
LinkedIn
Reddit
Email

Restez informé et en sécurité

SSL.com est un leader mondial de la cybersécurité, PKI et les certificats numériques. Inscrivez-vous pour recevoir les dernières nouvelles de l'industrie, des conseils et des annonces de produits de SSL.com.

Nous aimerions recevoir vos commentaires

Répondez à notre enquête et faites-nous part de votre avis sur votre récent achat.