Outils pour utilisateurs

Outils du site


certificats

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
certificats [2017/08/23 15:00]
florian [Signature PDF intégrée]
certificats [2025/12/05 09:05] (Version actuelle)
florian [Installation]
Ligne 34: Ligne 34:
  
 ==== Certificats auto-signé ==== ==== Certificats auto-signé ====
-Il faut installer la dernière version d'​[[https://​www.openssl.org/​source/​|OpenSSL]]. 
  
-Un certificat auto-signé est un certificat que vous générez vous-même. Il est important de noter qu'il n'est en rien (à attributs équivalents) moins protecteur qu'un certificat émis par une autorité certifiée. MAIS il ne sera pas connu des navigateurs des clients. Ces derniers seront invités à reconnaitre explicitement votre certificat comme étant de confiance.+<WRAP center round info 60%> 
 +La version d'​Apache actuellement proposée par le setup (Apache 2.4.36) n'​accepte plus les certificats générés via OpenSSL avec une taille de clé infieure à 2048 bits. 
 + 
 +La section suivante a été mise-à-jour pour en tenir compte. Si votre certificat a été généré avec une taille de clé de 1024 bits, veuillez le re-générer. 
 +</​WRAP>​ 
 + 
 +Donc, au moins à partir de Apache 2.4.36 il est nécessaire d'​avoir une version de OpenSSL >= 3. 
 +Vous pouvez trouvez des binaires pour windows ici: https://​slproweb.com/​products/​Win32OpenSSL.html 
 + 
 +Pour rappel, un certificat auto-signé est un certificat que vous générez vous-même. Il est important de noter qu'il n'est en rien (à attributs équivalents) moins protecteur qu'un certificat émis par une autorité certifiée. MAIS il ne sera pas connu des navigateurs des clients. Ces derniers seront invités à reconnaitre explicitement votre certificat comme étant de confiance. 
 + 
 +Génération de la clé publique (le certificat) et de la clé privée: 
 +<​code>​ 
 +openssl req -x509 -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.crt -sha256 -days 3650 
 +</​code>​ 
 + 
 +=== Ancienne procédure (Obsolète) === 
 +<WRAP center round important 60%> 
 +Cette section est conservée à titre d'​archive. Ne plus utiliser cette procédure pour générer des certificats auto-signés. 
 +</​WRAP>​
  
 On va tout d'​abord générer une clé privée: On va tout d'​abord générer une clé privée:
Ligne 90: Ligne 108:
 </​code>​ </​code>​
  
-En fin de fichier, après les définitions d'​Alias déjà existante ​:+En fin de fichier, après les définitions d'​Alias déjà existante ​on déclare notre VirtualHost configuré avec SSL. 
 <​code>​ <​code>​
-NameVirtualHost 192.168.XXX.XXX:​443 +<​VirtualHost ​*:443> 
-<​VirtualHost ​192.168.XXX.XXX:443> +DocumentRoot ​"C:/​nchp/​usr/​local/​nchp/​ezged/​www"
-DocumentRoot ​c:/​nchp/​usr/​local/​nchp/​ezged/​www +
-ServerName 192.168.XXX.XXX+
 SSLEngine On SSLEngine On
-SSLOptions ​+FakeBasicAuth ​+ExportCertData +StrictRequire +SSLOptions +ExportCertData +StrictRequire 
-SSLCertificateFile ​c:/​nchp/​etc/​nchp/​ezged/​mydomain.crt +SSLCertificateFile ​"C:/​nchp/​etc/​nchp/​ezged/​mydomain.crt" 
-SSLCertificateKeyFile ​c:/​nchp/​etc/​nchp/​ezged/​mydomain.key+SSLCertificateKeyFile ​"C:/​nchp/​etc/​nchp/​ezged/​mydomain.key"
 </​VirtualHost>​ </​VirtualHost>​
 </​code>​ </​code>​
Ligne 143: Ligne 160:
 sous la forme d'un tampon. Si elle n'​apparaît pas visuellement la plupart des visionneur PDF notifierons toutefois sous la forme d'un tampon. Si elle n'​apparaît pas visuellement la plupart des visionneur PDF notifierons toutefois
 de la présence d'une signature. de la présence d'une signature.
 +
 +=== Problème connu ===
 +
 +Si après la mise en place de la signature vos travaux de COLD tombent en erreur à l'​étape de stockage, qui 
 +est l'​étape durant laquelle le fichier sera signé, vérifiez que le framework .Net 3.5, dont dépend l'​outil de signature,
 +est bien installé.
 +
 +{{wiki:​install_net35_win2012.png?​800x496}}
 ==== Signature détachée ==== ==== Signature détachée ====
 Elle concerne tout type de fichiers (les PDF aussi). Elle se présente sous la forme d'un fichier au format PKCS7 (extension .p7s) Elle concerne tout type de fichiers (les PDF aussi). Elle se présente sous la forme d'un fichier au format PKCS7 (extension .p7s)
Ligne 180: Ligne 205:
 Les chemins sont à adapter selon votre cas. Les chemins sont à adapter selon votre cas.
  
-====== ​Le certificat ​client ​pour signer au coup par coup les documents ​======+<WRAP center round tip 60%> 
 +Utilisez le mode ''​legacy''​ si vous rencontrez des erreurs de compatibilité entre votre version d'​OpenSSL et celle du fichier p12. 
 +</​WRAP>​ 
 + 
 + 
 +Si par exemple vous obtenez une erreur semblable à celle ci-dessous au moment d'​exporter le certificat:​ 
 +<​code>​ 
 +Error outputting keys and certificates 
 +083B0000:​error:​0308010C:​digital envelope routines:​inner_evp_generic_fetch:​unsupported:​../​openssl-3.1.2/​crypto/​evp/​evp_fetch.c:​341:​Global default library context, Algorithm (RC2-40-CBC : 0), Properties () 
 +</​code>​ 
 + 
 +Dans ce cas ajoutez l'​option ''​-legacy''​ à vos commandes. Exemple: 
 +<​code>​ 
 +openssl pkcs12 -legacy -in moncertificat.p12 -clcerts -nokeys -out moncertificat.crt 
 +</​code>​ 
 +====== ​Message d'​erreur "the ssl connection could not be established see inner exception"​ sur l'​application mobile Android. ====== 
 + 
 +Ce message d'​erreur est affiché lorsque que le certificat ​racine (ca-bundle) est expiré. 
 + 
 +Solution: 
 +Récupérer le ca-bundle: (ne fonctionne pas pour les certificats auto-signé) 
 +exemple sur un certificat comodo (setigo): 
 + 
 +utilisez un navigateur à jour (ex: Firefox), allez sur l'url de l'​application et cliquez sur le cadenas  
 +  
 +{{:​ssl.png?​400|}} 
 + 
 +cliquez sur connexion sécurisée,​ ensuite sur plus d'​information 
 + 
 +{{:​ssl2.png?​400|}} 
 +  
 +une fenêtre s'​affiche contenant des informations,​ cliquez sur Afficher le certificat 
 + 
 +{{:​ssl3.png?​400|}} 
 + 
 +Cette action ouvre une page web, cliquer sur télécharger:​ PEM (chain) 
 + 
 +{{:​ssl4.png?​400|}} 
 +  
 +Enregistrer le fichier sous le nom de (name).ca-bundle.crt et édité le avec votre éditeur de texte préféré. 
 +Supprimer le premier bloc. Ce bloc correspond a votre certificat. Les autres blocs représentent la chain. 
 + 
 +{{:​ssl5.png?​400|}} 
 + 
 +Placez ce fichier dans votre dossier apache où ce situe les autres *.crt 
 + 
 +Éditez votre fichier httpd.conf 
 + 
 +Cherchez votre bloc où vous déclarez les certificats. 
 +Ajoutez la ligne: SSLCertificateChainFile {votre path du ca-bundle}.ca-bundle.crt 
 + 
 +<​code>​ 
 +NameVirtualHost 192.168.XXX.XXX:​443 
 +<​VirtualHost 192.168.XXX.XXX:​443>​ 
 +DocumentRoot c:/​nchp/​usr/​local/​nchp/​ezged/​www 
 +ServerName 192.168.XXX.XXX 
 +SSLEngine On 
 +SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire 
 +SSLCertificateFile c:/​nchp/​etc/​nchp/​ezged/​mydomain.crt 
 +SSLCertificateKeyFile c:/​nchp/​etc/​nchp/​ezged/​mydomain.key 
 +SSLCertificateChainFile c:/​nchp/​etc/​nchp/​ezged/​myname.ca-bundle.crt 
 +</​VirtualHost>​ 
 +</​code>​ 
 + 
 +pour conclure redémarrer apache. 
 + 
 + 
 +====== Certificats et applications mobiles ====== 
 + 
 +Lorsque EzGED doit être accessible depuis une application mobile il convient de s'​assurer 
 +que le certificat TLS installé sur le serveur soit accepté ​par les OS mobiles donc principalement par iOS et Android. 
 + 
 +Liste des certificats racines de confiance pour: 
 +  * Les OS Apple https://​support.apple.com/​fr-fr/​HT209143 
 +  * Android : pas de liste officielle 
 + 
 + 
 +====== Memo OpenSSL ====== 
 + 
 +====Convertir un DER en PEM ===== 
 + 
 +<​code>​ 
 +openssl x509 -inform der -in moncertificat.der -out moncertificat.crt 
 +</​code>​ 
certificats.1503500419.txt.gz · Dernière modification: 2023/03/17 09:56 (modification externe)