====== OpenSSL ======
* [[https://net-security.fr/security/openssl-formats-cheat-sheet/]]
* [[https://connect.ed-diamond.com/Linux-Pratique/lp-123/les-certificats-de-l-emission-a-la-revocation]]
* [[https://blog.idriss-code.fr/gestion-pratique-des-certificats-avec-openssl/|Gestion pratique des certificats avec OpenSSL]]
==== Générer un certificat auto-signé ====
* [[https://ache.one/notes/cr%C3%A9er-un-certificat-auto-sign%C3%A9-depuis-un-CA-auto-sign%C3%A9|Obtenir un certificat auto-signé à partir de sa propre autorité de certification]]
=== Générer une clé privée RSA ===
openssl genrsa -out server.key 1024
=== Créer une CSR ===
CSR: Certificate Signing Request
openssl req -new -key server.key -out server.csr
=== Générer le certificat auto-signé ===
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
# ou
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes # génère un .pem
=== Générer un certificat signé par une autorité de certification ===
[[http://www.linux-france.org/prj/edu/archinet/systeme/ch24s03.html|Source]]
openssl x509 -req -in myserver.csr -out myserver.crt -CA superfish.pem -CAkey superfish.key -CAcreateserial -CAserial mysuperfish.srl
==== Lancer un serveur HTTPS ====
sudo openssl s_server -accept 443 -cert server.pem
* ''-WWW'' sert les fichiers présents dans le dossier courant
* ''-key '': permet de spécifier la clé privée
* ''-cert '': permet de spécifier le certificat du serveur
==== Se connecter à un serveur HTTPS ====
openssl s_client -connect 192.168.12.1:443
Permet d'obtenir le certificat du serveur (entre les balises ''CERTIFICATE'') et d'interagir ensuite avec le serveur (appuyer deux fois sur ''ENTREE'' !)
==== Connaître les dates d'un certificat ====
[[https://www.shellhacks.com/openssl-check-ssl-certificate-expiration-date/|Source]]
openssl x509 -noout -dates -in cert.pem
==== Gérer sa propre PKI ====
* [[https://www.linuxtricks.fr/wiki/openssl-creation-d-une-autorite-de-certification-interne-et-de-certificats-clients|Openssl : Création d'une Autorité de Certification interne et de Certificats Clients]]
* [[https://www.reddit.com/r/homelab/comments/1foflc8/pki_in_homelabs_how_do_you_manage_internal/|PKI in Homelabs - How Do You Manage Internal Certificates?]]
* https://www.certwarden.com/, https://smallstep.com/docs/step-ca/getting-started/
* [[https://github.com/FiloSottile/mkcert|mkcert]]