Taille: 1372
Commentaire: utf8 mon ami
|
← Version 30 à la date du 2010-11-23 13:51:05 ⇥
Taille: 7063
Commentaire: + bidouille pour récupérer l'accès superadmin quand il a expiré, ahem…
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
un coup de main de linagora (qui a dit "une fois n'est pas coutume ?") : [[attachment:installation_ejbca_debian.pdf]] | Un coup de main de linagora (qui a dit "une fois n'est pas coutume ?") : [[attachment:installation_ejbca_debian.pdf]] |
Ligne 5: | Ligne 5: |
* ajouter ''non-free'' dans les sources.list (Etch) * aptitude install sun-java5-jre * ajouter les JCE-policy (cf doc d'installation de EJBCA) (''à packager avec deux diverts ?'') |
. ajouter ''non-free'' dans les sources.list (Etch) . `# aptitude install sun-java5-jre` . installer les JCE-policy (cf doc d'installation d'EJBCA) (''à installer avec deux diverts...'') |
Ligne 11: | Ligne 11: |
* config utf8n, cf [[Etude/Unicode]] (+ `collation-server = utf8_general_ci`, mais est-ce utile ?) * utilisateur+base dédiés : |
. configuration utf8, voir sur [[Etude/Unicode]] (+ `collation-server = utf8_general_ci`, on ne sait jamais) . création de la base et de son utilisateur dédié : |
Ligne 16: | Ligne 16: |
* ajout de libmysql-java | . installation du pilote JDBC : `aptitude install libmysql-java` |
Ligne 20: | Ligne 20: |
* deb http://apt.auf.org/ etch thomas * source http://git.auf.org/?p=pki;a=tree;f=jboss4 (inspiration : http://svn.debian.org/viewsvn/pkg-jboss/jboss4/trunk/) |
. ajout dans sources.list : `deb http://apt.auf.org/ etch thomas` . voir le code source utilisés pour créer les paquets sur http://git.auf.org/?p=pki;a=tree;f=jboss4 (inspiration : http://svn.debian.org/viewsvn/pkg-jboss/jboss4/trunk/) . '''TODO : faire un addgroup jboss dans le postinst''' |
Ligne 23: | Ligne 24: |
mise en place d'un serveur de test (à partir du serveur par défaut) : * `aptitude install jboss4` * `/etc/init.d/jboss4 stop` (et attendre que le java arrête de mouliner) * `/usr/share/jboss4/bin/create-server-config default test` * `vi /etc/default/jboss4` : indiquer la valeur `JBOSS_SERVER=test` * `/etc/init.d/jboss4 start` (et attendre 30 secondes que ça démarre...) |
mise en place d'un serveur ejbca (à partir du serveur par défaut):: . `aptitude install jboss4` . `/etc/init.d/jboss4 stop` (et attendre que le java arrête de mouliner) . `/usr/share/jboss4/bin/create-server-config default ejbca` . `vi /etc/default/jboss4` : indiquer la valeur `JBOSS_SERVER=ejbca` . `/etc/init.d/jboss4 start` (et attendre 30s à 1min que ça démarre...) |
Ligne 32: | Ligne 33: |
* déploiement en tant que jboss:jboss * AC de départ : dédiée à l'administration du système * packaging : est-ce possible ? |
'''ATTENTION, les opérations précédées de `$` sont à faire en tant qu'utilisateur `jboss` ''' préparation:: . `# aptitude install sun-java5-jdk ant` (''on a besoin de compiler... ce paquet peut sans doute être supprimé ensuite'') . `$ unzip ` '''dans /usr/share/ejbca''' . adaptations de la configuration dans /usr/share/ejbca/conf/ : . conf/ejbca.properties . conf/database.properties . conf/mail.properties . conf/ocsp.properties . conf/web.properties . conf/log.properties . `# /etc/init.d/jboss4 stop` . `$ export APPSRV_HOME=/usr/share/jboss4` . `$ export ANT_OPTS=-Xmx512m` . `$ ant clean` boostrap (compilation et pré-déploiment de EJBCA):: . ''avant : '' `# chown jboss /srv/jboss4/ejbca/deploy` . `$ ant bootstrap` . ''après : '' `# chown root /srv/jboss4/ejbca/deploy` installation pilote JDBC pour MySQL:: . `# ln -s /usr/share/java/mysql-connector-java.jar /srv/jboss4/ejbca/lib/` : ajout du connecteur java (mmh... y'a pas un moyen plus propre ? classpath ?) créations des certifs (depuis le boostrap):: . `# /etc/init.d/jboss4 start` . `$ ant install` déploiement complet (EJBCA et tous les clés+certificats associés):: . `# /etc/init.d/jboss4 stop` . ''avant : '' `# chown jboss /srv/jboss4/ejbca/conf /srv/jboss4/ejbca/deploy /srv/jboss4/ejbca/deploy/jboss-web.deployer` . `$ ant deploy` . ''après'' : `# chown jroot /srv/jboss4/ejbca/conf /srv/jboss4/ejbca/deploy /srv/jboss4/ejbca/deploy/jboss-web.deployer` . note : pour les redeploiements (nouvel ant deploy) souvent nécessaires par la suite (adaptation, mises à jour d'ejbca, etc.), il faudra bien faire "stop+chown" avant et "chown+start" après. premier test:: . `# /etc/init.d/jboss4 start` (attendre 1 min 30 à 2 min sur igc.auf ; ne pas pleurer) . aller sur `https://.....:8442/ejbca` . récupération des clés ./p12/superadmin.p12 dans le navigateur . aller sur `https://.....:8443/ejbca` (auth avec certif) patch sur la version 3.7.1:: . l'argument `cmd=deltacrt` n'existe pas du côté de la partie publique; c'est un bug d'EJBCA 3.7.1 [[https://jira.primekey.se/browse/ECA-989|corrigé ici]] pour les futures version d'EJBCA. Le patch est appliqué sur igc.auf.org. == sécurisation : droits == Placer des droits `rw-r----- root jboss` sur les clés privées et autres. Pour cela, examiner les fichiers placés dans /srv/jboss4/ejbca par ejbca lors du `ant deploy` (fichiers appartenant à jboss). == sécurisation : nettoyage == Voir http://ejbca.org/security.html On retire (''rm'') les objets suivants : . `ejbca/deploy/jmx-console.war` . `ejbca/deploy/management/console-mgr.sar` Dans l'interface publique, suppression de : . `publicweb/templates` . `publicweb/cardCertApply.jsp` . `publicweb/scripts/functions.vbs` == sécurisation : frontal apache == Voir ici : http://git.auf.org/?p=pki;a=tree;f=ejbca/apache Reste à ajouter un pare-feu local (INPUT 80 et 443 uniquement) == ejbca en ligne de commande == . création d'un script /usr/bin/ejbca : {{{ $ cat /usr/bin/ejbca #!/bin/sh export APPSRV_HOME=/usr/share/jboss4/ cd /usr/share/ejbca exec ./bin/ejbca.sh "$@" }}} . NB : le tout accessible uniquement par l'utilisateur jboss pour éviter les soucis == cron : génération des CRLs et dump de la BD == {{{ $ cat /etc/cron.d/ejbca # /etc/cron.d/ejbca SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO=.....@auf.org # creation des CRL quand c'est necessaire 22 * * * * jboss /usr/share/ejbca/createcrl.sh # dump des bases (pour backups) 0 1 * * * jboss /usr/share/ejbca/backup.sh }}} * [[http://git.auf.org/?p=pki;a=blob;f=ejbca/createcrl.sh|createcrl.sh]] script de création/mise à jour des CRLs (inspiration : [[http://www.ejbca.org/manual.html#Cron job]]) * [[http://git.auf.org/?p=pki;a=blob;f=ejbca/backup.sh|backup.sh]] : script de dump de la BD ejbca (dump qui sera backupé, pour ne pas uniquement backuper /var/lib/mysql bêtement) == moins de logs == . lire http://ejbca.org/faq.html#logLevelJBoss . modifier `/etc/jboss4/ejbca/jboss-log4j.xml` en conséquence : . remplacer DEBUG par INFO ou WARN . ajouter un niveau max général (vers la fin du fichier) : {{{ <root> <priority value="INFO" /> <appender-ref ref="FILE"/> </root> }}} ||<#fcca00> TODO : logrotate & co || = exemple de récupération en cas de perte d'accès superadmin (ahem…) = * commencer par se créer un nouveau compte admin : {{{ # su - jboss $ cd /usr/share/ejbca $ export APPSRV_HOME=/usr/share/jboss4/ $ ./bin/ejbca.sh ra adduser superadmin2 motdepasse CN=superadmin2 "" Administration "" 65 P12 $ echo "update AdminEntityData set matchValue='superadmin2' where matchValue='superadmin'" | mysql ejbca # sale bidouille, mais… pas trouvé mieux pour le moment… $ exit # /etc/init.d/jboss4 stop ; sleep 60 ; /etc/init.d/jboss4 start # à cause de la bidouille au dessus }}} * aller récupérer son nouveau certificat admin sur `https://...../ejbca/enrol/browser.jsp` * éditer l'entité `superadmin` pour la remettre au statut `Nouveau` (+ nouveau mot de passe) * retourner remettre les droits correctement : {{{ # su - jboss $ echo "update AdminEntityData set matchValue='superadmin' where matchValue='superadmin2'" | mysql ejbca # sale bidouille, mais… pas trouvé mieux pour le moment… $ exit # /etc/init.d/jboss4 stop ; sleep 60 ; /etc/init.d/jboss4 start # à cause de la bidouille au dessus }}} |
Un coup de main de linagora (qui a dit "une fois n'est pas coutume ?") : installation_ejbca_debian.pdf
java
ajouter non-free dans les sources.list (Etch)
# aptitude install sun-java5-jre
installer les JCE-policy (cf doc d'installation d'EJBCA) (à installer avec deux diverts...)
mysql-server
configuration utf8, voir sur Etude/Unicode (+ collation-server = utf8_general_ci, on ne sait jamais)
- création de la base et de son utilisateur dédié :
CREATE DATABASE ejbca;
CREATE USER 'ejbca'@'localhost' IDENTIFIED BY 'motdepasse';
GRANT ALL ON ejbca.* TO 'ejbca'@'localhost';
installation du pilote JDBC : aptitude install libmysql-java
jboss
ajout dans sources.list : deb http://apt.auf.org/ etch thomas
voir le code source utilisés pour créer les paquets sur http://git.auf.org/?p=pki;a=tree;f=jboss4 (inspiration : http://svn.debian.org/viewsvn/pkg-jboss/jboss4/trunk/)
TODO : faire un addgroup jboss dans le postinst
- mise en place d'un serveur ejbca (à partir du serveur par défaut)
aptitude install jboss4
/etc/init.d/jboss4 stop (et attendre que le java arrête de mouliner)
/usr/share/jboss4/bin/create-server-config default ejbca
vi /etc/default/jboss4 : indiquer la valeur JBOSS_SERVER=ejbca
/etc/init.d/jboss4 start (et attendre 30s à 1min que ça démarre...)
ejbca
ATTENTION, les opérations précédées de $ sont à faire en tant qu'utilisateur jboss
- préparation
# aptitude install sun-java5-jdk ant (on a besoin de compiler... ce paquet peut sans doute être supprimé ensuite)
$ unzip dans /usr/share/ejbca
- adaptations de la configuration dans /usr/share/ejbca/conf/ :
- conf/ejbca.properties
- conf/database.properties
- conf/mail.properties
- conf/ocsp.properties
- conf/web.properties
- conf/log.properties
# /etc/init.d/jboss4 stop
$ export APPSRV_HOME=/usr/share/jboss4
$ export ANT_OPTS=-Xmx512m
$ ant clean
- boostrap (compilation et pré-déploiment de EJBCA)
avant : # chown jboss /srv/jboss4/ejbca/deploy
$ ant bootstrap
après : # chown root /srv/jboss4/ejbca/deploy
- installation pilote JDBC pour MySQL
# ln -s /usr/share/java/mysql-connector-java.jar /srv/jboss4/ejbca/lib/ : ajout du connecteur java (mmh... y'a pas un moyen plus propre ? classpath ?)
- créations des certifs (depuis le boostrap)
# /etc/init.d/jboss4 start
$ ant install
- déploiement complet (EJBCA et tous les clés+certificats associés)
# /etc/init.d/jboss4 stop
avant : # chown jboss /srv/jboss4/ejbca/conf /srv/jboss4/ejbca/deploy /srv/jboss4/ejbca/deploy/jboss-web.deployer
$ ant deploy
après : # chown jroot /srv/jboss4/ejbca/conf /srv/jboss4/ejbca/deploy /srv/jboss4/ejbca/deploy/jboss-web.deployer
- note : pour les redeploiements (nouvel ant deploy) souvent nécessaires par la suite (adaptation, mises à jour d'ejbca, etc.), il faudra bien faire "stop+chown" avant et "chown+start" après.
- premier test
# /etc/init.d/jboss4 start (attendre 1 min 30 à 2 min sur igc.auf ; ne pas pleurer)
aller sur https://.....:8442/ejbca
- récupération des clés ./p12/superadmin.p12 dans le navigateur
aller sur https://.....:8443/ejbca (auth avec certif)
- patch sur la version 3.7.1
l'argument cmd=deltacrt n'existe pas du côté de la partie publique; c'est un bug d'EJBCA 3.7.1 corrigé ici pour les futures version d'EJBCA. Le patch est appliqué sur igc.auf.org.
sécurisation : droits
Placer des droits rw-r----- root jboss sur les clés privées et autres. Pour cela, examiner les fichiers placés dans /srv/jboss4/ejbca par ejbca lors du ant deploy (fichiers appartenant à jboss).
sécurisation : nettoyage
Voir http://ejbca.org/security.html
On retire (rm) les objets suivants :
ejbca/deploy/jmx-console.war
ejbca/deploy/management/console-mgr.sar
Dans l'interface publique, suppression de :
publicweb/templates
publicweb/cardCertApply.jsp
publicweb/scripts/functions.vbs
sécurisation : frontal apache
Voir ici : http://git.auf.org/?p=pki;a=tree;f=ejbca/apache
Reste à ajouter un pare-feu local (INPUT 80 et 443 uniquement)
ejbca en ligne de commande
- création d'un script /usr/bin/ejbca :
$ cat /usr/bin/ejbca #!/bin/sh export APPSRV_HOME=/usr/share/jboss4/ cd /usr/share/ejbca exec ./bin/ejbca.sh "$@"
- NB : le tout accessible uniquement par l'utilisateur jboss pour éviter les soucis
cron : génération des CRLs et dump de la BD
$ cat /etc/cron.d/ejbca # /etc/cron.d/ejbca SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO=.....@auf.org # creation des CRL quand c'est necessaire 22 * * * * jboss /usr/share/ejbca/createcrl.sh # dump des bases (pour backups) 0 1 * * * jboss /usr/share/ejbca/backup.sh
createcrl.sh script de création/mise à jour des CRLs (inspiration : http://www.ejbca.org/manual.html#Cron job)
backup.sh : script de dump de la BD ejbca (dump qui sera backupé, pour ne pas uniquement backuper /var/lib/mysql bêtement)
moins de logs
modifier /etc/jboss4/ejbca/jboss-log4j.xml en conséquence :
- remplacer DEBUG par INFO ou WARN
- ajouter un niveau max général (vers la fin du fichier) :
<root> <priority value="INFO" /> <appender-ref ref="FILE"/> </root>
TODO : logrotate & co
exemple de récupération en cas de perte d'accès superadmin (ahem…)
commencer par se créer un nouveau compte admin :
# su - jboss $ cd /usr/share/ejbca $ export APPSRV_HOME=/usr/share/jboss4/ $ ./bin/ejbca.sh ra adduser superadmin2 motdepasse CN=superadmin2 "" Administration "" 65 P12 $ echo "update AdminEntityData set matchValue='superadmin2' where matchValue='superadmin'" | mysql ejbca # sale bidouille, mais… pas trouvé mieux pour le moment… $ exit # /etc/init.d/jboss4 stop ; sleep 60 ; /etc/init.d/jboss4 start # à cause de la bidouille au dessus
aller récupérer son nouveau certificat admin sur https://...../ejbca/enrol/browser.jsp
éditer l'entité superadmin pour la remettre au statut Nouveau (+ nouveau mot de passe)
retourner remettre les droits correctement :
# su - jboss $ echo "update AdminEntityData set matchValue='superadmin' where matchValue='superadmin2'" | mysql ejbca # sale bidouille, mais… pas trouvé mieux pour le moment… $ exit # /etc/init.d/jboss4 stop ; sleep 60 ; /etc/init.d/jboss4 start # à cause de la bidouille au dessus