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.
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.
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
.
$ 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.
\
) à 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
.
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_status
et 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.
Rechercher des commandes de certificats
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.
- Votre compte SSL.com - Soumettre un CSR
- Échec du pré-test?!
- Votre compte SSL.com - Validations
- Votre compte SSL.com - Commandes
- Votre compte SSL.com - Domaines
- SSL /TLS Délivrance et révocation des certificats avec ACME
- HSM cloud pris en charge pour la signature de documents et la signature de code EV