Changes

Jump to navigation Jump to search
1,580 bytes removed ,  21:31, 25 October 2023
Line 1: Line 1:  
{{Languages|PHPki}}
 
{{Languages|PHPki}}
 +
 +
{{Note box|type=Note :| pour la v10, nous avons créé une nouvelle version mise à jour de PHPKi appelée PHPKi-ng avec des correctifs et des valeurs par défaut de sécurité plus élevées. Si vous utilisiez la version précédente, vous devrez créer une nouvelle autorité de certification et des certificats. Nous avons importé la version originale dans les contributions si vous avez vraiment besoin de l'utiliser, mais ce n'est pas recommandé et ce ne sera pas généralement publié.}}
    
=== Mainteneur ===
 
=== Mainteneur ===
 +
Initialement :
 
[mailto:daniel@firewall-services.com[[User:VIP-ire|Daniel B.]]] de [http://www.firewall-services.com Firewall Services]
 
[mailto:daniel@firewall-services.com[[User:VIP-ire|Daniel B.]]] de [http://www.firewall-services.com Firewall Services]
    +
La contribution est maintenant maintenue par Koozali SME.
 
=== Version ===
 
=== Version ===
 +
Ancienne version avant SME10 : smeserver-phpki and phpki.
 +
Nouvelle version :
 +
{{ #smeversion: smeserver-phpki-ng }}
 +
{{ #smeversion: phpki-ng }}
   −
{{ #smeversion: smeserver-phpki }}
+
Veuillez suivre les instructions d'installation ci-dessous, elles satisferont toutes les dépendances et les dernières versions des 2 paquets qui seront installés automatiquement.
{{ #smeversion: phpki }}
  −
 
  −
Veuillez suivre les instructions d'installation ci-dessous, elles satisferont toutes les dépendances et les dernières versions des 2 RPMs qui seront installés automatiquement.
      
=== Description ===
 
=== Description ===
   −
[http://sourceforge.net/projects/phpki/ PHPki] est une application OpenSource pour gérer une multi-agency PKI conforme HIPAA. Avec ça, vous pouvez gérer de manière centralisée les certificats X.509 utilisés avec S/MIME activé sur les clients e-mail, serveurs SSL, et applications VPN. PHPki est maintenant utilisé pour gérer les certificats avec la dernière version de la contrib [[OpenVPN_Bridge|SME Server OpenVPN Bridge]].
+
[http://sourceforge.net/projects/phpki/ PHPki] est une application OpenSource pour gérer une multi-agency PKI conforme HIPAA. Avec ça, vous pouvez gérer de manière centralisée les certificats X.509 utilisés avec S/MIME activé sur les clients de messagerie, serveurs SSL, et applications VPN. PHPki est maintenant utilisé pour gérer les certificats avec la dernière version de la contribution [[OpenVPN_Bridge/fr|SME Serveur OpenVPN Bridge]].
   −
Vous pouvez voir la démo d'installation [http://phpki.sourceforge.net/phpki/ ici]
+
Vous pouvez voir la démo d'installation [http://phpki.sourceforge.net/phpki/ ici], en anglais.
    
=== Pré-requis ===
 
=== Pré-requis ===
*SME Server 7.X
     −
Vérifié sur :
+
{{Warning box|type=Attention :| cette version de PHPki est une version légèrement modifiée, de sorte qu'elle puisse être utilisée avec les certificats générés avec la version précédente de [[OpenVPN_Bridge/fr|SME Server OpenVPN Bridge]], ainsi que quelques autres modifications mineures.
SME Server 7.4 - [[User:RequestedDeletion|RequestedDeletion]]
+
À partir de phpki-ng-0.84, default_md a été mis à niveau vers sha512 (l'ancien était sha1). Vous pouvez conserver votre autorité de certification existante, mais nous vous conseillons vivement de passer à une nouvelle instance, car la faiblesse du hachage sha1 est un problème de sécurité.
 +
}}
    +
=== Installation ===
 +
{{Warning box|type=Attention : | si openvpn n'est pas détecté, PHPKi ne peut pas générer de clé TA - takey - et il doit vous en informer lors de l'installation. Pour générer une clé TA une fois que vous avez installé openvpn, faites ceci (en supposant qu'il s'agit du bon répertoire) :
 +
openvpn --genkey --secret /opt/phpki/phpki-store/CA/private/takey.pem
 +
chown phpki:phpki /opt/phpki/phpki-store/CA/private/takey.pem}}
   −
{{Warning box|Cette version de PHPki est une version légèrement modifiée, de sorte qu'elle puisse être utilisé avec les certificats générés avec la version précédente de [[OpenVPN_Bridge|SME Server OpenVPN Bridge]], ainsi que quelques autres de modifications mineures.}}
+
<tabs container><tab name="SME 10">
 +
*Installer les paquets
 +
yum --enablerepo=smecontribs install smeserver-phpki-ng
   −
=== Installation ===
+
Aller dans le gestionnaire du serveur au paragraphe « Sécurité », dans « Gestion des certificats » et commencer la création de votre certificat racine (CA).
   −
==== SME Server 7, SME Server 8, SME Server 9 ====
+
Attention à ne cliquer qu'une seule fois et attendre le rafraichissement de la la page ; cela peut être très long de créer un certificat de 4096 bits...
   −
Pour sme8
+
</tab>
*Installer les RPMs :
+
<tab name="SME 9">
  yum --enablerepo=smecontribs install smeserver-phpki
+
Vous devez activer le dépôt [[epel]].
 +
*Installer les paquets
 +
  yum --enablerepo=smecontribs,epel install smeserver-phpki
   −
*Puis redémarrer les services :
+
*Et redémarrer les services nécessaires :
 
  expand-template /etc/httpd/conf/httpd.conf
 
  expand-template /etc/httpd/conf/httpd.conf
 
  expand-template /etc/httpd/pki-conf/httpd.conf
 
  expand-template /etc/httpd/pki-conf/httpd.conf
Line 43: Line 56:  
  signal-event post-upgrade; signal-event reboot
 
  signal-event post-upgrade; signal-event reboot
   −
Pour sme9, vous devez activer le dépôt [[epel]]
+
Lors de la mise à jour, vous pouvez exécuter :
 +
expand-template /etc/httpd/conf/httpd.conf
 +
expand-template /etc/httpd/pki-conf/httpd.conf
 +
sv t /service/httpd-e-smith
 +
sv t /service/httpd-pki
 +
 
   −
*Installer les RPMs :
+
</tab>
  yum --enablerepo=smecontribs,epel install smeserver-phpki
+
<tab name="SME 8">
 +
Pour sme8
 +
*Installer les paquets
 +
  yum --enablerepo=smecontribs install smeserver-phpki
   −
*Puis redémarrer les services :
+
*Et démarrer/redémarrer les services nécessaires :
 
  expand-template /etc/httpd/conf/httpd.conf
 
  expand-template /etc/httpd/conf/httpd.conf
 
  expand-template /etc/httpd/pki-conf/httpd.conf
 
  expand-template /etc/httpd/pki-conf/httpd.conf
Line 56: Line 77:  
*Sinon, il est aussi possible de redémarrer le serveur :
 
*Sinon, il est aussi possible de redémarrer le serveur :
 
  signal-event post-upgrade; signal-event reboot
 
  signal-event post-upgrade; signal-event reboot
 +
</tab>
 +
</tabs>
   −
=== Configurer le nouveau PKI ===
+
=== Configurer votre nouveau PKI ===
   −
Dans le Server-Manager, vous trouverez un nouveau menu "Gestion des certificats". Ou vous pouvez utiliser le lien suivant : https://server.domain.tld/phpki/ca
+
Dans le gestionnaire du serveur, vous trouverez un nouveau menu « Gestion des certificats » (ou vous pouvez utiliser le lien suivant : https://server.domain.tld/phpki/ca).
   −
Vous pouvez entrer les informations suivantes :
+
Vous devez entrer les informations suivantes :
    
**Organisation
 
**Organisation
Line 75: Line 98:  
**URL of your PKI (https://my.domain.tld/phpki)
 
**URL of your PKI (https://my.domain.tld/phpki)
   −
Cette image montre la première (et la plus importante) partie de cette page de configuration :
+
Ces deux images montrent la première (et la plus importante) partie de cette page de configuration :
 +
 
 +
[[File:PHPki_CA_initial_setup_data_part_1.png|768px|thumb|center|Première partie de l'écran de configuration initiale (haut)]]
   −
[[File:Phpki_init_config.png|768px|thumb|center|First part of the initiale configuration page]]
+
[[File:PHPki_CA_initial_setup_data_part_2.png|768px|thumb|center|Première partie de l'écran de configuration initiale (bas)]]
    
La seconde partie ressemble à ceci :
 
La seconde partie ressemble à ceci :
   −
[[File:Phpki_init_config2.png|768px|thumb|center|Second part of the initiale configuration page]]
+
[[File:PHPki_CA_initial_setup_options.png|768px|thumb|center|Seconde partie de l'écran de configuration initiale]]
   −
La configuration par default devrait être OK pour la plupart des installations. Vous pouvez juste changer la partie "Help Document Contact Info".
+
La configuration par défaut devrait être viable pour la plupart des installations. Vous pouvez juste changer la partie "Help Document Contact Info".
   −
Une fois ce formulaire rempli (ce qui peut prendre plusieurs minutes), vous devriez avoir quelque chose comme ceci :
+
Une fois ce formulaire rempli (ce qui peut prendre plusieurs minutes, '''soyez patient''', car la génération des paramètres dh peut être assez longue), vous devriez avoir quelque chose comme ceci :
    
[[File:Phpki_init_finish.png|768px|thumb|center|Second part of the initiale configuration page]]
 
[[File:Phpki_init_finish.png|768px|thumb|center|Second part of the initiale configuration page]]
Line 91: Line 116:  
Maintenant, PHPki est prêt. Il est très simple à utiliser.
 
Maintenant, PHPki est prêt. Il est très simple à utiliser.
   −
Il est accessible dans le Server-Manager ou vous pouvez utilisez le lien suivant : https://server.domain.tld/phpki/ca
+
Il est accessible dans le gestionnaire du serveur ou vous pouvez utiliser le lien suivant : https://server.domain.tld/phpki/ca
 
  −
Il existe aussi une interface public, disponible uniquement sur les réseaux locaux, mais sans mot de passe, sur https://my.domain.tld/phpki.
  −
 
  −
Ici, les utilisateurs peuvent télécharger les Certificats Master CA, CRL, ou chercher les certificats des autres utilisateurs (uniquement dans la partie public bien sûr).
  −
 
  −
{{Note box|Si vous installez juste la contrib [[OpenVPN_Bridge]] et avez installé PHPki comme recommandé sur la page Wiki, ou vous voulez juste utiliser [[PHPki]] sans la contrib [[OpenVPN_Bridge]], alors vous avez terminé, et vous n'avez donc pas besoin de migrer les certificats.}}
     −
=== Migration des certificats pour l'installation des versions précédentes de la contribs OpenVPN-Bridge ===
+
Il existe aussi une interface publique, disponible uniquement sur les réseaux locaux, mais sans mot de passe, sur https://my.domain.tld/phpki.
   −
Si vous avez installé cette contrib PHPki parceque vous avez utilisié [[OpenVPN_Bridge]] avant et que vous avez déjà des certificats, suivez les instructions suivantes.
+
Ici, les utilisateurs peuvent télécharger les Certificats Master CA, CRL, ou chercher les certificats des autres utilisateurs (uniquement pour la partie publique bien sûr).
Cependant, si vous avez une installation neuve de [[OpenVPN_Bridge]], ne suivez pas ces instructions, car vous n'avez aucuns "anciens" certificats.
     −
PHPki est maintenant le gestionnaire de certificat recommandé pour [[OpenVPN_Bridge]].
+
{{Note box|type=Note :| si vous installez uniquement la contribution [[OpenVPN_Bridge/fr]] et avez installé PHPki comme recommandé sur la page Wiki, ou vous voulez uniquement utiliser [[PHPki]] sans la contribution [[OpenVPN_Bridge/fr]], alors vous avez terminé, et vous n'avez donc pas besoin de migrer les certificats.}}
Cette partie va vous expliquer comment importer vos certificats créés avec openvpn-bridge dans PHPki.
     −
* Premièrement, vous avez besoin d'installer la contrib expliquée sur cette page (vous pouvez saisir n'importe quoi pour la configuration du CA, tous vos anciens paramètres seront restaurés).
+
{{Note box|type=Note : |à partir de phpki-ng-0.84-14, de nouvelles URL sont disponibles pour accéder à votre CRL et demander l'état du certificat :
   −
* Deuxièmement, vous avez besoin de copier ce script sur votre serveur (par exemple /root/migrate.sh) et de l'exécuter en root.
+
    http://www.somewhere.com/phpki/ns_revoke_query.php?
   −
{{Warning box|Bien sûr, prenez le temps de le lire avant de l'exécuter en root.}}
+
    http://www.somewhere.com/phpki/dl_crl.php}}
    +
=== Ajouter un autre admin  ===
 +
Si vous avez besoin de déléguer la génération de certificats, vous pouvez utiliser le panneau utilisateur pour ajouter l'accès au panneau, mais vous devrez également ajouter l'utilisateur manuellement à la configuration php.
   −
#!/bin/bash
+
Éditer /opt/phpki/phpki-store/config/config.php<syntaxhighlight lang="php">
+
#$PHPki_admins = Array(md5('admin'));
# Read Openvpn-Bridge DB
+
$PHPki_admins = Array(md5('admin'),md5('user2'));
ORGNAME=$(/sbin/e-smith/db openvpn-bridge getprop default_config organizationName)
  −
COUNTRY=$(/sbin/e-smith/db openvpn-bridge getprop default_config countryCode)
  −
STATE=$(/sbin/e-smith/db openvpn-bridge getprop default_config countryName)
  −
LOC=$(/sbin/e-smith/db openvpn-bridge getprop default_config localityName)
  −
DEP=$(/sbin/e-smith/db openvpn-bridge getprop default_config sectionName)
  −
KEYSIZE=$(/sbin/e-smith/db openvpn-bridge getprop default_config keySize)
  −
EMAIL=$(/sbin/e-smith/db openvpn-bridge getprop default_config mailAddress)
  −
  −
  −
OPENSSL=/usr/bin/openssl
  −
OLDDIR=/etc/openvpn/easy-rsa/keys/bridge/
  −
NEWDIR=/opt/phpki/phpki-store/CA/
  −
  −
  −
# Store the actual time in $TIME
  −
TIME=$(date +%d%m%Y%H%M%S)
  −
  −
  −
# Create needed directories
  −
prepare_dir(){
  −
        mkdir -p $NEWDIR/{certs,newcerts,requests,pfx,private}
  −
}
  −
  −
  −
# Migrate the certificates to phpki store
  −
migrate_certs(){
  −
        cd $OLDDIR
  −
  −
        # Copy the old index.txt and serial
  −
        cat $OLDDIR/index.txt > $NEWDIR/index.txt
  −
        cat serial > $NEWDIR/serial
  −
  −
        # Copy the cacert related files
  −
        cat ca.crt > $NEWDIR/certs/cacert.pem
  −
        cat ca.key > $NEWDIR/private/cakey.pem
  −
  −
        # Now, for each file ending with .crt
  −
        for CERT in $(ls ./*.crt); do
  −
                CERT=$(basename $CERT .crt)
  −
  −
                ISININDEX=$(grep -c "/CN=$CERT/" $NEWDIR/index.txt)
  −
  −
                # If the current cert isn't referenced in the index,
  −
                # or the corresponding key or csr file dosn't exists, then skip it
  −
                # This can happen in some situation where the serial has been corrupted
  −
  −
                if [ $ISININDEX -gt 0 ]&&[ -s $CERT.key ]&&[ -s $CERT.csr ]; then
  −
                        # Retrieve the serial number as reported by  openssl
  −
                        SERIAL=$(openssl x509 -noout -serial -in $CERT.crt | cut -d"=" -f 2)
  −
  −
                        # Create the pem only cert in the new dir
  −
                        $OPENSSL x509 -in $CERT.crt -inform PEM -outform PEM -out $NEWDIR/newcerts/$SERIAL.pem
  −
  −
                        # Create the der formated cert
  −
                        $OPENSSL x509 -in $CERT.crt -inform PEM -outform DER -out $NEWDIR/certs/$SERIAL.der
  −
  −
                        # And the pkcs12 bundle (cert+key+ca)
  −
                        $OPENSSL pkcs12 -export -in $CERT.crt -inkey $CERT.key -certfile ca.crt -caname $ORGNAME -passout pass: -out $NEWDIR/pfx/$SERIAL.pfx
  −
  −
                        # Copy the private key
  −
                        cat $CERT.key > $NEWDIR/private/$SERIAL-key.pem
  −
  −
                        # And the cert request
  −
                        cat $CERT.csr > $NEWDIR/requests/$SERIAL-req.pem
  −
                fi
  −
        done
  −
}
  −
  −
perms(){
  −
        # Restrict access
  −
        chown -R phpki:phpki $NEWDIR
  −
        chmod -R o-rwx $NEWDIR
  −
}
  −
  −
phpki_conf(){
  −
        # Retrieve the common name of our CA with openssl command
  −
        CACN=$($OPENSSL x509 -subject -noout -in $OLDDIR/ca.crt | cut -d'=' -f 8 | cut -d'/' -f 1)
  −
  −
  −
        if [ -e /opt/phpki/phpki-store/config/config.php ]; then
  −
                # Move the actual phpki configuration file             
  −
                mv /opt/phpki/phpki-store/config/config.php /opt/phpki/phpki-store/config/config.php.$TIME
  −
  −
                # And use sed to configure it properly
  −
                sed -e "s/config\['organization'\].*/config\['organization'\] = '$ORGNAME';/" \
  −
                        -e "s/config\['unit'\].*/config\['unit'\] = '$DEP';/" \
  −
                        -e "s/config\['contact'\].*/config\['contact'\] = '$EMAIL';/" \
  −
                        -e "s/config\['locality'\].*/config\['locality'\] = '$LOC';/" \
  −
                        -e "s/config\['province'\].*/config\['province'\] = '$STATE';/" \
  −
                        -e "s/config\['country'\].*/config\['country'\] = '$COUNTRY';/" \
  −
                        -e "s/config\['common_name'\].*/config\['common_name'\] = '$CACN';/" \
  −
                        -e "s/config\['ca_pwd'\].*/config\['ca_pwd'\] = <nowiki>''</nowiki>;/" \
  −
                        -e "s/config\['keysize'\].*/config\['keysize'\] = '$KEYSIZE';/" \
  −
                        /opt/phpki/phpki-store/config/config.php.$TIME \
  −
                        > /opt/phpki/phpki-store/config/config.php
  −
        fi
  −
}
  −
  −
migrate_var(){
  −
        # Here, we just migrate dhparam and ta to phpki store
  −
        if [ -e $OLDDIR/dh.pem ]; then
  −
                cat $OLDDIR/dh.pem > $NEWDIR/private/dhparam1024.pem
  −
        fi
  −
        if [ -e $OLDDIR/ta.key ]; then
  −
                cat $OLDDIR/ta.key > $NEWDIR/private/takey.pem
  −
        fi
  −
}
  −
  −
  −
  −
prepare_dir
  −
migrate_certs
  −
phpki_conf
  −
migrate_var
  −
perms
     −
Maintenant, retournez dans le Server-Manager dans la gestion des certificats et vérifiez que tous vos anciens certificats sont bien présents.
+
</syntaxhighlight>
    
=== Désintallation ===
 
=== Désintallation ===
 
Pour procéder à la désinstallation, exécutez les commandes suivantes :
 
Pour procéder à la désinstallation, exécutez les commandes suivantes :
  yum remove smeserver-phpki phpki
+
  yum remove smeserver-phpki-ng phpki-ng
 
  expand-template /etc/httpd/conf/httpd.conf
 
  expand-template /etc/httpd/conf/httpd.conf
 
  sv t /service/httpd-e-smith
 
  sv t /service/httpd-e-smith
   −
{{Note box|Comme beaucoup d'autres RPMs, supprimer PHPki ne va pas le faire disparaître totalement de votre serveur. Surtout les certificats, ils seront conservés et certains fichiers PHP aussi.}}
+
{{Note box|type=Note :|comme pour beaucoup d'autres paquets, supprimer PHPki ne va pas le faire disparaître totalement de votre serveur. Surtout les certificats seront conservés ainsi que certains fichiers PHP. PHPKi-ng tentera de sauvegarder tous les anciens certificats.}}
 
  −
Les certificats et fichiers de configuration PKI sont stockés ici : /opt/phpki/phpki-store, Les fichiers PHP sont ici : /opt/phpki/html
     −
{{Warning box|Ces fichiers peuvent être très importants, je vous recommande de les laisser ici. Si vous souhaitez réellement tout supprimer, faites donc un backup avant :
+
Les certificats et fichiers de configuration PKI sont stockés ici : /opt/phpki/phpki-store, Les fichiers PHP sont ici : /opt/phpki/html.
    +
{{Warning box|type=Attention !|Pour recommencer à zéro après la désinstallation, vous devez supprimer les répertoires html et pkpki-store avant de réinstaller.
 +
Ces fichiers peuvent être très importants, je vous recommande de les laisser ici. Si vous souhaitez réellement tout supprimer, faites donc une sauvegarde avant :
 
  cd /opt/phpki
 
  cd /opt/phpki
 
  tar cvzf ~/phpki-backup.tar.gz ./
 
  tar cvzf ~/phpki-backup.tar.gz ./
   −
A présent, vous pouvez vider complètement le répertoire /opt/phpki }}
+
A présent, vous pouvez vider complètement le répertoire /opt/phpki :
 +
rm /opt/phpki/{html,phpki-store} -rf
 +
}}
    
=== Réinstallation ===
 
=== Réinstallation ===
Si vous souhaitez réinstaller la contribs, vous avez besoin de suivre ces étapes après avoir réinstallé les RPMs :
+
 
 +
==== Avant phpki-ng 0.84-14 ====
 +
Si vous avez supprimé la contribution et que vous souhaitez la réinstaller en ayant conservé vos certificats CA précédents (en supposant que vous avez restauré /opt/phpki), vous avez besoin de suivre ces étapes après avoir réinstallé les paquets :
    
  cd /opt/phpki/html/
 
  cd /opt/phpki/html/
Line 263: Line 171:  
  rm -f index.php
 
  rm -f index.php
 
  ln -s main.php index.php
 
  ln -s main.php index.php
 +
cd /opt/phpki/
 +
chown phpki:phpki -R phpki-store
 +
chown root:phpki -R html/config.php
 +
 +
=== Bogues ===
 +
Merci de signaler tout bogue dans la section dédiée sur [http://bugs.contribs.org/enter_bug.cgi bugzilla].
 +
 +
====smeserver-phpki-ng====
 +
 +
Pour la nouvelle contribution, sélectionner le composant smeserver-phpki-ng ou utilisez {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-phpki-ng|title=ce lien.}}
 +
{{#bugzilla:columns=id,product,version,status,summary |sort=id |order=desc |component=smeserver-phpki-ng|noresultsmessage="Pas de bogues ouverts actuellement."}}
 +
 +
====phpki-ng====
 +
Uniquement pour le nouveau phpki-ng, sélectionner le composant phpki-ng ou utilisez {{BugzillaFileBug|product=SME%20Contribs|component=phpki-ng|title=ce lien.}}
   −
=== Bugs ===
+
{{#bugzilla:columns=id,product,version,status,summary |sort=id |order=desc |component=phpki-ng|noresultsmessage="Pas de bogues ouverts actuellement."}}
   −
Merci de signaler tout bug dans la section dédiée sur [http://bugs.contribs.org/enter_bug.cgi bugzilla]
+
=== Journal des modifications ===
sélectionnez smeserver-phpki ou utilisez {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-phpki|title= ce lien}}
+
Seules les versions publiées dans smecontrib sont listées ici.
    +
{{#smechangelog:smeserver-phpki-ng}}
 +
{{#smechangelog:phpki-ng}}
 
----
 
----
 
[[Category:Contrib/fr]]
 
[[Category:Contrib/fr]]
 
[[Category:Administration:Certificates/fr]]
 
[[Category:Administration:Certificates/fr]]
3,054

edits

Navigation menu