====== 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]]