« Koji/SigulUsing » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 90 : | Ligne 90 : | ||
{{Admon/faq|ERROR: I/O error: Unexpected EOF in NSPR| | {{Admon/faq|ERROR: I/O error: Unexpected EOF in NSPR| | ||
* | * S'assurer que le répertoire des clés existe et a les bons propriétaires et droits ( owner et group: '''sigul''' )<br>Ce chemin est déclaré dans le fichier <path>/etc/sigul/server.conf</path><pre>gnupg-home: /var/lib/sigul/server/gnupg</pre> | ||
* | * S'assurer qu'il y a suffisamment d'espace disque ( en gros deux fois la taille du plus gros paquet RPM ) | ||
* | * S'assurer que les daemons sigul_bridge et sigul_server sont démarrés<pre>service sigul_server status && service sigul_bridge status</pre> | ||
* S'assurer que le pont peut se connecter au serveur ( [[Koji/SigulInstall#Firewall| Configure firewall]] )}} | |||
{{Admon/faq|Unknown error on creating key process| | {{Admon/faq|Unknown error on creating key process| | ||
* | * Installer le paquet <package>gnupg1</package> depuis [ http://people.redhat.com/mitr/rpmsigner/rhel6 ] ou de [ http://infrastructure.stg.fedoraproject.org/repo/builder-rpms/6Server/SRPMS/ ] | ||
* | * S'assurer que Sigul est configurer pour utiliser <package>gnupg1</package><pre>sed -i -e '/gnupg_bin/s,^.*$,gnupg_bin = "/usr/bin/gpg1",' /usr/share/sigul/settings.py</pre> | ||
* | * S'assurer que le paquet <package>python-sqlalchemy</package> soit installé}} | ||
{{Admon/faq|Certificats client expirés| | |||
Une fois le certificat client expiré, il faut le désactiver localement<pre>certutil -d ~/.sigul -D -n sigul-client-cert</pre> et refaire une génération de certificat client.}} | |||
== Scripts == | == Scripts == | ||
Version du 21 août 2013 à 13:31
Sigul
après une installation de Sigul, on peut l'utiliser.
Créer une nouvelle clé
Une fois le client Sigul capable d'envoyer des commandes à <class>Sigul</class>, on peut créer une nouvelle clé nommée centos-5-key.
sigul new-key --name-real='CentOS-5-B2PWeb' --name-comment='CentOS 5 B2PWeb Signing Key' --name-email='srs@b2pweb.com' --key-admin root centos-5-key
$ sigul new-key --help
usage: client.py new-key [options] key
Add a key
options:
-h, --help show this help message and exit
--key-admin=USER Initial key administrator
--name-real=NAME_REAL
Real name of key subject
--name-comment=NAME_COMMENT
A comment about of key subject
--name-email=NAME_EMAIL
E-mail of key subject
--expire-date=YYYY-MM-DD
Key expiration date
Import d'une clé existante
sigul import-key 'CentOS-5-B2PWeb' ~/.gnupg/secring.gpg
Changer le nom de la clé
Changer le nom de la clé centos5 en centos-5-key
sigul modify-key --new-name centos-5-key centos5
Ajout d'un utilisateur
- Ajout d'un utilisateur administrateur
sigul new-user --admin --with-password didier
Autoriser l'utilisation d'une clé existante à un utilisateur
sigul grant-key-access centos-5-key didier
sigul grant-key-access --help usage: client.py grant-key-access key user Grant key access to a user options: -h, --help show this help message and exit
Modifier la phrase de passe
sigul change-passphrase centos-5-key
sigul change-passphrase --help usage: client.py change-passphrase key Change key passphrase options: -h, --help show this help message and exit
FAQ
- S'assurer que le répertoire des clés existe et a les bons propriétaires et droits ( owner et group: sigul )
Ce chemin est déclaré dans le fichier <path>/etc/sigul/server.conf</path>gnupg-home: /var/lib/sigul/server/gnupg
- S'assurer qu'il y a suffisamment d'espace disque ( en gros deux fois la taille du plus gros paquet RPM )
- S'assurer que les daemons sigul_bridge et sigul_server sont démarrés
service sigul_server status && service sigul_bridge status
- S'assurer que le pont peut se connecter au serveur ( Configure firewall )
- Installer le paquet <package>gnupg1</package> depuis [ http://people.redhat.com/mitr/rpmsigner/rhel6 ] ou de [ http://infrastructure.stg.fedoraproject.org/repo/builder-rpms/6Server/SRPMS/ ]
- S'assurer que Sigul est configurer pour utiliser <package>gnupg1</package>
sed -i -e '/gnupg_bin/s,^.*$,gnupg_bin = "/usr/bin/gpg1",' /usr/share/sigul/settings.py
- S'assurer que le paquet <package>python-sqlalchemy</package> soit installé
Une fois le certificat client expiré, il faut le désactiver localement
certutil -d ~/.sigul -D -n sigul-client-certet refaire une génération de certificat client.
Scripts
sigulsign_unsigned.py
Le script est à récupérer depuis un depôt releng de Fedora via git (git://git.fedorahosted.org/git/releng) ou directement depuis https://git.fedorahosted.org/cgit/releng/tree/scripts/sigulsign_unsigned.py
Avant de pouvoir utiliser ce script magique qui va signer tous les RPM non-signés construit dans le Koji, il est nécessaire de modifier quelques variables:
- Changer l'URL du HUB Koji (2 fois): KOJIHUB
- Spécifier nos propres fichiers de certificats: SERVERCA, CLIENTCA, CLIENTCERT
- Ajout de nos clés de signature: KEYS
Pour obtenir l'ID de nos clés:
- exporter de la clé
sigul get-public-key centos-5-key > centos-5-key.asc
- importer dans GPG
gpg --import centos-5-key.asc
- Lister nos clé GPG
gpg --list-keys
/root/.gnupg/pubring.gpg ------------------------ pub 1024D/773DF357 2013-08-20 uid CentOS-5-B2PWeb (CentOS 5 B2PWeb Signing Key) <srs@b2pweb.com> sub 2048g/EBC96FF2 2013-08-20
L'ID de notre clé centos-5-key est 773DF357
Change koji hostname, certificate files and add B2PWeb signing keys
diff -u a/sigulsign_unsigned.py b/sigulsign_unsigned.py
--- a/sigulsign_unsigned.py 2013-08-21 10:05:57.418032284 +0200
+++ b/sigulsign_unsigned.py 2013-08-21 10:13:11.683976970 +0200
@@ -38,11 +38,11 @@ rpmdict = {}
unsigned = []
loglevel = ''
passphrase = ''
-KOJIHUB = 'https://koji.fedoraproject.org/kojihub'
+KOJIHUB = 'http://koji.b2pweb.com/kojihub'
# Should probably set these from a koji config file
-SERVERCA = os.path.expanduser('~/.fedora-server-ca.cert')
-CLIENTCA = os.path.expanduser('~/.fedora-upload-ca.cert')
-CLIENTCERT = os.path.expanduser('~/.fedora.cert')
+SERVERCA = os.path.expanduser('~/.koji/serverca.crt')
+CLIENTCA = os.path.expanduser('~/.koji/clientca.crt')
+CLIENTCERT = os.path.expanduser('~/.koji/client.pem')
# Setup a dict of our key names as sigul knows them to the actual key ID
# that koji would use. We should get this from sigul somehow.
KEYS = {'fedora-12-sparc': {'id': 'b3eb779b', 'v3': True},
@@ -67,7 +67,9 @@ KEYS = {'fedora-12-sparc': {'id': 'b3eb7
'fedora-10': {'id': '4ebfc273', 'v3': False},
'fedora-10-testing': {'id': '0b86274e', 'v3': False},
'epel-6': {'id': '0608b895', 'v3': True},
- 'epel-5': {'id': '217521f6', 'v3': False}}
+ 'epel-5': {'id': '217521f6', 'v3': False},
+ 'centos-5-key' : {'id': '773df357', 'v3': True},
+ 'centos-6-key' : {'id': 'd3f3c56a', 'v3': True}}
def exit(status):
"""End the program using status, report any errors"""
@@ -213,7 +215,7 @@ if not (opts.just_list or opts.just_writ
# Reset the KOJIHUB if the target is a secondary arch
if opts.arch:
- KOJIHUB = 'http://%s.koji.fedoraproject.org/kojihub' % opts.arch
+ KOJIHUB = 'http://%s.koji.b2pweb.com/kojihub' % opts.arch
# setup the koji session
logging.info('Setting up koji session')
kojisession = koji.ClientSession(KOJIHUB)