echo | openssl s_client --connect ldapserver:636 2>/dev/null | openssl x509 -noout -dates
Informatique › Sécurité › PKI
vendredi, septembre 30 2022
Obtenir aisement la validité d'un certificat ssl
Par pepin le vendredi, septembre 30 2022, 16:22
vendredi, janvier 28 2022
OpenSSL : Selft signed certificate, erreur 19, extration de CA
Par pepin le vendredi, janvier 28 2022, 11:03
Il arrive qu'une connexion SSL échoue pour cause de certificats self signed ou untrusted CA. Si vous avez la certitude de la validité d la chain authority, vous pouvez la récupérer ainsi :
echo -n | \ openssl s_client -showcerts -connect www.test.fr:443 -debug | \ sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ca.cert
Vous récupérez le CA du serveur dans le fichier ca.cert que vous pouvez ensuite mettre dans votre trousseau de certificats valides.
mercredi, janvier 26 2022
OpenSSL : établir une connection starttls
Par pepin le mercredi, janvier 26 2022, 13:54
openssl s_client -starttls smtp \ -crlf -CAfile ca-certificates.crt \ -connect smtp.server.fr:25
ca-certificates.crt est l'autorité de certification du serveur distant, en cas de self-signed.
mardi, janvier 11 2022
Java et tls1.0
Par pepin le mardi, janvier 11 2022, 18:20
TLS1.0 est déprécié, certes mais il existe encore des sites l'utilisant et pour lequel java n'y peut plus accéder. Pour rétablir TLS1.0 en client java, il faut réactiver les policies historiques :
update-crypto-policies --set LEGACY
vendredi, août 6 2021
GPG : Transférer ses clefs d'un ordinateur à un autre
Par pepin le vendredi, août 6 2021, 17:12
gpg --export --armor pascal.valois@free.fr > ~/cle-publique.asc gpg --export-secret-keys --armor --output cle-privee.asc scp *.asc target: ssh target gpg --import ~/cle-publique.asc gpg --import ~/cle-privee.asc
mardi, janvier 28 2020
Installer une chain autority sur un client
Par pepin le mardi, janvier 28 2020, 12:07
mkdir /usr/local/share/ca-certificates/
issuer
cp *.crt /usr/local/share/ca-certificates/issuer
sudo update-ca-certificates
jeudi, juillet 26 2018
Trois certificats SSL, trois niveaux de sécurité
Par pepin le jeudi, juillet 26 2018, 02:20
Le certificat SSL à validation de domaine (DV)
C’est le niveau de sécurisation basique. Pratique, si vous voulez simplement passer votre site web en HTTPS sans fournir trop d’informations à l’Autorité de Certification ni puiser trop abondamment dans votre trésorerie. Rien de plus simple : pour obtenir un certificat SSL DV (domain validation), il suffit d’être propriétaire du nom de domaine.
L’AC s’assure que vous donniez votre accord en vue de l’émission d’un certificat SSL en tant que titulaire du nom de domaine. Cela fonctionne comme la validation d’une adresse mail lors d’une inscription sur un site web : l’Autorité vous envoie un mail d’approbation, vous cliquez sur le lien, et le tour est joué.
Avec ce type de certificat SSL, le cadenas apparaît suite à l’activation du protocole HTTPS. Mais votre identité n’est pas vérifiée, ni affichée dans la barre d’adresse.
Le certificat SSL à validation d’organisation (OV)
Le certificat SSL OV (organization validation) propose un niveau de sécurité plus poussé, puisqu’il oblige le propriétaire du nom de domaine à être également celui de l’entreprise qui fait la demande. Car, non, ce n’est pas toujours le cas !
Prenez l’exemple de l’entreprise Lambda. Quelqu’un peut demander un certificat SSL DV afin de sécuriser la connexion sur le nom de domaine « lambda.fr », sans pour autant être le propriétaire de la société idoine. Dans le cadre d’une certification à validation d’organisation, l’AC va s’assurer que le propriétaire de l’entreprise est bien celui qui fait la demande, en le contactant directement par le biais des coordonnées trouvées sur les plateformes officielles (Infogreffe, Insee…). La vérification prend environ deux jours.
Une fois le protocole HTTPS activé, l’affichage dans votre barre d’adresse est identique à celui d’une certification à validation de domaine. À une différence près : l’internaute peut consulter votre raison sociale à l’intérieur du certificat SSL.
Le certificat SSL à validation étendue (EV)
Si vous cherchez le niveau de certification le plus élevé, c’est du côté du certificat SSL EV (extended validation) qu’il faut regarder.
Ici, l’AC ne se contente pas de prendre contact avec le demandeur pour vérifier qu’il est bien propriétaire de l’entreprise affiliée au nom de domaine. Elle effectue des vérifications poussées quant à l’existence légale de l’entité et l’exactitude des informations exigées (celles-ci pouvant varier en fonction de l’Autorité contactée). Ce type de certificat est principalement utilisé par les plateformes souhaitant sécuriser des transactions à partir de données bancaires, comme les sites e-commerce, les banques ou les administrations.
Ce certificat numérique se porte garant de la fiabilité de l’entreprise. La raison sociale (voire le nom commercial) de celle-ci, ainsi que son pays d’origine, apparaissent dans la barre d’adresse, en vert. Ces informations viennent s’ajouter au cadenas de sécurité et à la mention HTTPS.
vendredi, juin 22 2018
Letsencrypt, authentification DNS, Wildcard
Par pepin le vendredi, juin 22 2018, 10:12
Letsencrypt permet de générer des certificats à durées limitée sur preuve simple : nous somme les propriétaires du comaine.
Voici comment générer un certificat wildcard pour votre domaine en utilisant la DNS comme preuve de propriété.
Installer Certbot-auto
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto --install-only
Validez votre installation :
/opt/eff.org/certbot/venv/bin/certbot --version
Générer votre certificat wildcard
./certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual -d '*.domain.tld'
Vous pouvez spécifier plusieurs -d pour faire un certificat multidomaine.
Acceptez les choix, et à un moment il vous demandera de mettre en place une entrée DNS pour valider le domaine :
Please deploy a DNS TXT record under the name _acme-challenge.domain.tld with the following value: 6CmoURMbv3F14hJdzR8zqXrhcYJeKWJEhT8xZcz4gUY
Mettez en place la clef, validez cell-ci :
host -t TXT _acme-challenge.domain.tld
Continuez de répondre aux question, dont l'adresse de notification de renouvellement de clef.
Et voila, vos certificats sont dans /etc/letsencrypt/live/'
Renouvellement automatique de votre certificat
Ajoutez cette ligne dans cron :
@monthly letsencrypt renew && service apache2 reload
vendredi, octobre 27 2017
Creation d'une autorité de certicification PKI et d'un certificat serveur pour mise en place d'un serveur OpenVPN
Par pepin le vendredi, octobre 27 2017, 21:23
Création de l'arborescence et des fichiers nécessaires :
cd /etc/ssl
mkdir newcerts
touch index.txt index.txt.attr serial
echo 00 > crlnumber
Création du certificat d'autorité :
export SUBJ='/CN=vpn.domain.tld/ST=state/L=locality/O=organisation/C=AU'
openssl req -x509 -config /etc/ssl/openssl.cnf -newkey rsa:8192 -sha256 -days 3650 -keyout private/root_ca.key -out root_ca.pem -subj "$SUBJ"
openssl x509 -serial -noout -in root_ca.pem | cut -d= -f2 > serial
chmod -R 600 /etc/ssl/private
Mise a jour du serial :
openssl x509 -serial -noout -in root_ca.pem | cut -d= -f2 > serial
Nous pourrions déclarer une autorité de certification intermédiaire pour signer nos certificats serveurs et clients, mais cela n'est pas utile en soit.
Nous allons maintenant générer le certificat du serveur openvpn, puis le signer avec notre autorité root_ca :
export SUBJ='/CN=vpn.domain.tld/ST=state/L=locality/O=organisation/C=AU'
openssl req -nodes -newkey rsa:2048 -keyout $vpn.key -out $vpn.req -subj "$SUBJ"
openssl ca -keyfile private/root_ca.key -cert root_ca.pem -in $vpn.req -out $vpn.pem
openssl ca -keyfile private/root_ca.key -cert root_ca.pem -in $vpn.req -out $vpn.pem
Nous allons maintenant générer un certificat pour un client, puis le signer avec notre autorité root_ca :
export client='client.domain.tld'
export SUBJ='/CN=client.domain.tld/ST=state/L=locality/O=organisation/C=AU'
openssl req -nodes -newkey rsa:2048 -keyout $client.key -out $client.req -subj "$SUBJ"
openssl ca -keyfile private/root_ca.key -cert root_ca.pem -in $client.req -out $client.pem
Génération du certificat de révocation "keys.crl" :
openssl ca -config openssl.cnf -gencrl -out keys.crl -keyfile private/root_ca.key -cert root_ca.pem
Installation des fichiers générés dans /etc/openvpn/ssl :
mkdir /etc/openvpn/ssl
mv $vpn.* /etc/openvpn/ssl/
mkdir /etc/openvpn/keys/
cp /etc/ssl/keys.crl /etc/openvpn/keys/crl.pem
mv dh2048.pem /etc/openvpn/ssl/
Génération d'une clef Diffie-Hellman de 2048 bits:
openssl dhparam -out dh2048.pem 2048
Génération d'une clef TLS (afin de bloquer les attaques DoS ou le flood UDP)
openvpn --genkey --secret /etc/openvpn/ssl/ta.key
Création de la chaine de certification :
cat /etc/ssl/root_ca/root_ca.pem > /etc/openvpn/ssl/ca_chain.pem
Création du fichier de configuration :
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gunzip /etc/openvpn/server.conf.gz
Cela vous donne un fichier avec les options principales que vous pouvez utiliser pour votre serveur. Mais pour faire plus simple, voici un fichier contenant les directives essentielles :
local 0.0.0.0
port 1194
proto tcp
dev tun
ca ssl/ca_chain.pem
cert ssl/$vpn.crt
key ssl/$vpn.key
crl-verify keys/crl.pem
dh server/dh2048.pem
# Configure server mode and supply a VPN subnet
server 192.168.90.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.255.0.0"
push "route 172.23.0.0 255.255.0.0"
keepalive 10 120
tls-auth server/ta.key 0 # This file is secret
cipher AES-256-CBC
max-clients 10
log-append /var/log/openvpn.log
verb 3
Enfin, révoquer un certificat (car il faut bien bannir un utilisateur parfois) :
openssl ca -revoke client.domain.tld.pem -config openssl.cnf -keyfile private/root_ca.key -cert root_ca.pem
openssl ca -config openssl.cnf -gencrl -out keys.crl -keyfile private/root_ca.key -cert root_ca.pem
cp keys.crl /etc/openvpn/keys/crl.pem
service openvpn@vpn restart
mercredi, février 23 2011
Self Signed Certificate 101
Par pepin le mercredi, février 23 2011, 11:54
Post mnemotechnique sur la création de certificat self signed :
# Création d'une requête de certificat openssl req --new -nodes -subj "/CN=MyCertitifate"> cert.csr # Création de la cléf serveur openssl rsa -in privkey.pem -out key.pem # Création du certificat serveur openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1056