Créer, gérer et convertir des certificats SSL avec OpenSSL
L'une des commandes SSL les plus populaires pour engendrent, convertir, gérer le Certificats SSL est OpenSSL.
Il y aura de nombreuses situations dans lesquelles vous devrez gérer OpenSSL de différentes manières, et ici je les ai énumérées pour vous comme une aide-mémoire pratique.
Dans cet article, je parlerai des commandes OpenSSL fréquemment utilisées pour vous aider dans le monde réel.
Certaines des abréviations liées aux certificats.
- SSL - couche de socket sécurisée
- CSR - Demande de signature de certificat
- TLS - Sécurité de la couche de transport
- PEM - Messagerie améliorée de confidentialité
- DER - Règles de codage distinguées
- SHA - Algorithme de hachage sécurisé
- PKCS - Normes de cryptographie à clé publique
Notez les: Cours d'opération SSL / TLS serait utile si vous ne connaissez pas les termes.
Create a new Private Key and Certificate Signing Request
openssl req -out geekflare.csr -newkey rsa: 2048 -nodes -keyout geekflare.key
La commande ci-dessus générera un CSR et un fichier de clé RSA de 2048 bits. Si vous avez l'intention d'utiliser ce certificat dans Apache ou Nginx, vous devez envoyer ce fichier CSR à l'autorité émettrice de certificats, et ils vous donneront un certificat signé principalement en der
or pem
format que vous devez configurer dans Apache or Nginx serveur Web.
Create a Self-Signed Certificate
openssl req -x509 -sha256 -nodes -newkey rsa: 2048 -keyout gfselfsigned.key -out gfcert.pem
La commande ci-dessus générera un certificat auto-signé et un fichier de clé avec RSA 2048 bits. J'ai aussi inclus sha256 car il est considéré comme le plus sûr pour le moment.
Pointe: par défaut, il générera un certificat auto-signé valide pendant un mois seulement. Vous pouvez donc envisager de définir le paramètre –days pour étendre la validité.
Ex: avoir l'auto-signature valable deux ans.
openssl req -x509 -sha256 -nodes -days 730 -newkey rsa: 2048 -keyout gfselfsigned.key -out gfcert.pem
Verify CSR file
openssl req -noout -text -in geekflare.csr
La vérification est essentielle pour vous assurer que vous envoyez le CSR à l'autorité émettrice avec les détails requis.
Create RSA Private Key
openssl genrsa -out private.key 2048
Si vous avez juste besoin de générer une clé privée RSA, vous pouvez utiliser la commande ci-dessus. J'ai inclus 2048 pour un cryptage plus fort.
Remove Passphrase from Key
openssl rsa -in certkey.key -out nopassphrase.key
Si vous utilisez une phrase de passe dans le fichier de clé et que vous utilisez Apache, chaque fois que vous démarrez, vous devez entrer le mot de passe. Si vous êtes ennuyé par la saisie d'un mot de passe, vous pouvez utiliser la commande openssl rsa -in geekflare.key -check ci-dessus pour supprimer la clé de phrase de passe d'une clé existante.
Verify Private Key
openssl rsa -in certkey.key -check
Si vous doutez de votre fichier clé, vous pouvez utiliser la commande ci-dessus pour vérifier.
Verify Certificate File
openssl x509 -in certfile.pem -text -noout
Si vous souhaitez valider des données de certificat telles que CN, OU, etc., vous pouvez utiliser une commande ci-dessus qui vous donnera les détails du certificat.
Verify the Certificate Signer Authority
openssl x509 -in certfile.pem -noout -issuer -issuer_hash
L'autorité émettrice de certificats signe chaque certificat et au cas où vous auriez besoin de les vérifier.
Check Hash Value of A Certificate
openssl x509 -noout -hash -in bestflare.pem
Convert DER to PEM format
openssl x509 –inform der –dans sslcert.der –out sslcert.pem
Habituellement, l'autorité de certification vous donnera un certificat SSL au format .der, et si vous devez les utiliser au format apache ou .pem, la commande ci-dessus vous aidera.
Convert PEM to DER format
openssl x509 –outform der –dans sslcert.pem –out sslcert.der
Au cas où vous auriez besoin de changer le format .pem en .der
Convert Certificate and Private Key to PKCS#12 format
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem
Si vous devez utiliser un certificat avec l'application java ou avec tout autre qui n'accepte que le format PKCS # 12, vous pouvez utiliser la commande ci-dessus, qui générera un seul fichier pfx contenant un certificat et un fichier de clé.
Pointe: vous pouvez également inclure un certificat de chaîne en passant –chain comme ci-dessous.
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem
Create CSR using an existing private key
openssl req –out certificate.csr –key existant.key –new
Si vous ne souhaitez pas créer une nouvelle clé privée au lieu d'utiliser une clé existante, vous pouvez utiliser la commande ci-dessus.
Check contents of PKCS12 format cert
openssl pkcs12 –info –nodes –dans cert.p12
PKCS12 est un format binaire, vous ne pourrez donc pas afficher le contenu dans le bloc-notes ou dans un autre éditeur. La commande ci-dessus vous aidera à voir le contenu du fichier PKCS12.
Convert PKCS12 format to PEM certificate
openssl pkcs12 –in cert.p12 –out cert.pem
Si vous souhaitez utiliser le format pkcs12 existant avec Apache ou simplement au format pem, cela sera utile.
Test SSL certificate of particular URL
openssl s_client -connect yoururl.com:443 -showcerts
J'utilise cela assez souvent pour valider le certificat SSL d'une URL particulière du serveur. C'est très pratique pour valider les détails du protocole, du chiffrement et du certificat.
Find out OpenSSL version
version openssl
Si vous êtes responsable de la sécurité d'OpenSSL, l'une des premières choses à faire est probablement de vérifier la version.
Check PEM File Certificate Expiration Date
openssl x509 -noout -in certificat.pem -dates
Utile si vous prévoyez de mettre en place une surveillance pour vérifier la validité. Il vous montrera une date dans la syntaxe notBefore et notAfter. notAfter est celui que vous devrez vérifier pour confirmer si un certificat est expiré ou toujours valide.
Ex:
[root@Chandan opt]# openssl x509 -noout -in bestflare.pem -dates pas avant= 4 juillet 14:02:45 2015 GMT pas après= 4 août 09:46:42 2015 GMT [root@Chandan opt]#
Check Certificate Expiration Date of SSL URL
openssl s_client -connect secureurl.com:443 2> / dev / null | openssl x509 -noout –enddate
Un autre outil utile si vous prévoyez de surveiller la date d'expiration du certificat SSL à distance ou une URL particulière.
Ex:
[root@Chandan opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate pas après= 8 décembre 00:00:00 2015 GMT
Check if SSL V2 or V3 is accepted on URL
Pour vérifier SSL V2
openssl s_client -connect secureurl.com:443 -ssl2
Pour vérifier SSL V3
openssl s_client -connect secureurl.com:443 -ssl3
Pour vérifier TLS 1.0
openssl s_client -connect secureurl.com:443 -tls1
Pour vérifier TLS 1.1
openssl s_client -connect secureurl.com:443 -tls1_1
Pour vérifier TLS 1.2
openssl s_client -connect secureurl.com:443 -tls1_2
Si vous êtes sécuriser un serveur web et devez valider si SSL V2 / V3 est activé ou non, vous pouvez utiliser la commande ci-dessus. Si activé, vous obtiendrez "CONNECTÉ" autre "échec de la poignée de main. »
Verify if the particular cipher is accepted on URL
openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl: 443
Si vous travaillez sur des résultats de sécurité et que les résultats des tests de stylet montrent que certains des chiffrements faibles sont acceptés, pour valider, vous pouvez utiliser la commande ci-dessus.
Bien sûr, vous devrez changer le chiffrement et l'URL que vous souhaitez tester. Si le chiffrement mentionné est accepté, vous obtiendrez "CONNECTÉ" autre "échec de la poignée de main. »
J'espère que les commandes ci-dessus vous aideront à en savoir plus sur OpenSSL à gérer Les certificats SSL pour votre site web.