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 14:38]
florian [Signature PDF intégrée]
certificats [2024/12/27 11:06] (Version actuelle)
florian [Utilisation de OpenSSL]
Ligne 6: Ligne 6:
 ===== Certificat SSL (HTTPS dans apache) ===== ===== Certificat SSL (HTTPS dans apache) =====
  
-Ce certificat est destiné à encrypter ​la liaison et à protéger votre client des hackers en tout genre. Il protège la communication entre le navigateur du client et votre serveur. Il est nécessaire voir vital, dès que vous ouvrez votre EzGED à l'​extérieur.+Ce certificat est destiné à chiffrer ​la liaison, rendant ainsi les données qui y transitent illisibles, ​et à protéger votre client des hackers en tout genre. Il protège la communication entre le navigateur du client et votre serveur. Il est nécessaire voir vital, dès que vous ouvrez votre EzGED à l'​extérieur.
  
 ==== Certificats de confiance ==== ==== Certificats de confiance ====
Ligne 12: Ligne 12:
 Un certificat est dit de confiance si le navigateur (qui va vérifier la validité du certificat) connait l'​autorité de certification qui l'a émis. Un certificat est dit de confiance si le navigateur (qui va vérifier la validité du certificat) connait l'​autorité de certification qui l'a émis.
  
-Nous vous conseillons Comodo comme fournisseur de certificat SSL environ 80 euros /an si vous le prenez pour 3 ans.+Nous vous conseillons Comodo comme fournisseur de certificat SSL pour environ 80 euros /an si vous le prenez pour 3 ans.
  
 Pré-Requis :  Pré-Requis : 
Ligne 34: Ligne 34:
  
 ==== Certificats auto-signé ==== ==== Certificats auto-signé ====
-Il faut installer la dernière version d'​OpenSSL.+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. 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.
Ligne 43: Ligne 43:
 </​code>​ </​code>​
  
-mydomain est à remplacer préférablement par l'url d'​accès à EZGED (exemple: monserveurged.fr) +//mydomain// est à remplacer préférablement par l'url d'​accès à EZGED (exemple: monserveurged.fr)\\
 On nous demande de saisir une "pass phrase"​ (i.e un mot de passe). On choisit le mot de passe de notre choix. On nous demande de saisir une "pass phrase"​ (i.e un mot de passe). On choisit le mot de passe de notre choix.
  
Ligne 54: Ligne 53:
 //​c:​\openssl\//​ est à remplacer avec le chemin vers lequel vous aurez installé OpenSSL //​c:​\openssl\//​ est à remplacer avec le chemin vers lequel vous aurez installé OpenSSL
  
-Puisque c'est auto-signé,​ nous prenons en charge nous-même la demande ​pour générer ​le certificat: +A partir de cette demande ​de signature de certificat nous générons ​le certificat:
 <​code>​ <​code>​
 openssl x509 -req -days 730 -in mydomain.csr -signkey mydomain.key -out mydomain.crt openssl x509 -req -days 730 -in mydomain.csr -signkey mydomain.key -out mydomain.crt
Ligne 76: Ligne 74:
  
   * Un fichier contenant le certificat (et sa clé publique) au format .crt   * Un fichier contenant le certificat (et sa clé publique) au format .crt
-  * Un fichier contenant la clé privée "décryptée" ((une clé privée étant protégée ​par mot de passe, on va en extraire le contenu qui ne sera plus protégé ​par mot de passe))+  * Un fichier contenant la clé privée "déchiffrée" ((une clé privée étant ​généralement ​protégée par mot de passe))
  
 Dans le fichier de configuration Apache (Ex: C:​\nchp\Apache2\conf\httpd.conf),​ ajoutez les directives suivantes : Dans le fichier de configuration Apache (Ex: C:​\nchp\Apache2\conf\httpd.conf),​ ajoutez les directives suivantes :
Ligne 87: Ligne 85:
 </​code>​ </​code>​
  
-Localisez la ligne suivante et décommentez-là (enlevez le signe # qui la précède)+Localisez la ligne suivante et décommentez-là (enlevez le signe # qui la précède)
 <​code>​ <​code>​
 LoadModule ssl_module modules/​mod_ssl.so LoadModule ssl_module modules/​mod_ssl.so
Ligne 128: Ligne 126:
 ==== Signature PDF intégrée ==== ==== Signature PDF intégrée ====
  
-Avec cette méthode les fichiers PDF sont signés et la signature est incluse dans le PDF. +Avec cette méthode les fichiers PDF sont signés et la signature est incluse dans le PDF.\\ 
-\\Elle fonctionne avec un fichier au format PKCS12 (extension .p12 ou .pfx). +Elle fonctionne avec un fichier au format PKCS12 (extension .p12 ou .pfx). 
-Ce type de fichiers embarque à la fois le certificat et la clé privé ​et ils sont protégés ​par mot de passe.+Ce type de fichiers embarque à la fois le certificat et la clé privée ​et il est protégé ​par mot de passe.
  
-Pour signer les PDF, avec signature incluse ​dans le PDF +La configuration ​dans le fichier instance.conf ​s'​effectue comme suit:
-Dans votre fichier ​de configuration ​instance.conf ​ajoutez les lignes suivantes dans la section [ezged]+
  
 <​code>​ <​code>​
 +[ezged]
    ​pdfsignp12path = c:​\nchp\etc\nchp\ezged\moncertificat.p12 ​    ​pdfsignp12path = c:​\nchp\etc\nchp\ezged\moncertificat.p12 ​
    ​pdfsignp12pass = votre mot de passe    ​pdfsignp12pass = votre mot de passe
Ligne 141: Ligne 139:
    ​digisign = 1    ​digisign = 1
 </​code>​ </​code>​
 +
 +La paramètre **//​pdfsignp12mask//​** indique si oui (1) ou non (0) la signature doit être masquée, c'​est-à-dire ne pas apparaître visuellement sur le fichier PDF
 +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.
 +
 +=== 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 178: Ligne 188:
 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.1503499131.txt.gz · Dernière modification: 2023/03/17 09:56 (modification externe)