NSS-3.103

Introduction à NSS

Le paquet Network Security Services (services de sécurité réseau) (NSS) est un ensemble de bibliothèques conçues pour supporter le développement en plate-forme croisée d'applications et de serveurs sécurisés. Les applications construites avec NSS peuvent supporter SSL v2 et v3, TLS, les certificats PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 et d'autres standards de sécurité. C'est utile pour implémenter SSL et S/MIME ou d'autres standards de sécurité sur Internet dans une application.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://archive.mozilla.org/pub/security/nss/releases/NSS_3_103_RTM/src/nss-3.103.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 2823082a44b9dd71d6281108e0bab03f

  • Taille du téléchargement : 73 Mo

  • Estimation de l'espace disque requis : 304 Mo (plus 149 Mo pour les tests)

  • Estimation du temps de construction : 0,8 SBU (avec parallélisme = 4, plus 16 SBU pour les tests sur les Ryzens d'AMD ou au moins 30 SBU sur les machines Intel)

Téléchargements supplémentaires

Dépendances de NSS

Requises

NSPR-4.35

Recommandées

Notes des auteurs : https://wiki.linuxfromscratch.org/blfs/wiki/nss

Installation de NSS

Installez NSS en exécutant les commandes suivantes :

patch -Np1 -i ../nss-3.103-standalone-1.patch &&

cd nss &&

make BUILD_OPT=1                      \
  NSPR_INCLUDE_DIR=/usr/include/nspr  \
  USE_SYSTEM_ZLIB=1                   \
  ZLIB_LIBS=-lz                       \
  NSS_ENABLE_WERROR=0                 \
  $([ $(uname -m) = x86_64 ] && echo USE_64=1) \
  $([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1)

Pour lancer les tests, exécutez les commandes suivantes :

cd tests &&
HOST=localhost DOMSUF=localdomain ./all.sh
cd ../
[Note]

Note

Quelques informations sur les tests :

  • HOST=localhost et DOMSUF=localdomain sont requis. Sans ces variables, un nom de domaine pleinement qualifié doit être spécifié et cette manière générique de faire devrait fonctionner pour tout le monde, tant que localhost.localdomain est défini dans /etc/hosts, comme on l'a fait dans le livre lfs.

  • Les tests prennent longtemps à terminer. Si vous le souhaitez, il y a des information dans le script all.sh pour lancer des sous-ensembles de la suite de tests complète.

  • Lorsque vous interrompez les tests, la suite de tests n'arrive pas à arrêter les serveurs de tests qu'elle a lancés. Cela conduit à une boucle infinie dans les tests où la suite de tests essaye de tuer un serveur qui n'existe plus parce qu'elle récupère le mauvais PID.

  • Les résultats de la suite de test (au format HTML !) se trouvent dans ../../test_results/security/localhost.1/results.html

  • Quelques tests peuvent échouer sur certaines machines Intel pour des raisons inconnues.

Maintenant, en tant qu'utilisateur root :

cd ../dist                                                          &&

install -v -m755 Linux*/lib/*.so              /usr/lib              &&
install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib              &&

install -v -m755 -d                           /usr/include/nss      &&
cp -v -RL {public,private}/nss/*              /usr/include/nss      &&

install -v -m755 Linux*/bin/{certutil,nss-config,pk12util} /usr/bin &&

install -v -m644 Linux*/lib/pkgconfig/nss.pc  /usr/lib/pkgconfig

Explication des commandes

BUILD_OPT=1 : Cette variable est passée à make pour que la construction s'effectue sans les symboles de débogage intégré dans les binaires et que les optimisations du compilateur par défaut soient utilisées.

NSPR_INCLUDE_DIR=/usr/include/nspr : Cette commande initialise l'emplacement des entêtes de nspr.

USE_SYSTEM_ZLIB=1 : Cette option est passée à make pour garantir que la bibliothèque libssl3.so est liée au zlib du système au lieu de la version incluse dans l'arborescence.

ZLIB_LIBS=-lz : Cette commande fournit le drapeau nécessaire pour lier au système zlib.

$([ $(uname -m) = x86_64 ] && echo USE_64=1) : L'option USE_64=1 est exigée sur un x86_64, sans quoi make essaiera de créer des objets 32 bits (et échouera). Le test [ $(uname -m) = x86_64 ] garantit que cela n'aura pas d'effet sur un système 32 bits.

([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1) : Ceci teste si sqlite est installé et, si tel est le cas, il passe (echo) l'option NSS_USE_SYSTEM_SQLITE=1 à make pour que libsoftokn3.so se lie à la version installée sur le système de sqlite.

NSS_DISABLE_GTESTS=1 : si vous n'avez pas besoin de lancer la suite de tests NSS, ajoutez cette option à la commande make, pour éviter la compilation des tests et gagner du temps de construction.

Configuration de NSS

Si p11-kit-0.25.5 est installé, le module de confiance p11-kit (/usr/lib/pkcs11/libp11-kit.so) peut être utilisé comme remplaçant de /usr/lib/libnssckbi.so pour rendre les CA du système disponibles de manière transparente pour les applications conscientes de NSS, plutôt qu'une bibliothèque statique fournie par /usr/lib/libnssckbi.so. En tant qu'utilisateur root, exécutez les commandes suivantes :

ln -sfv ./pkcs11/p11-kit-trust.so /usr/lib/libnssckbi.so

De plus, pour les applications dépendantes qui n'utilisent pas la base interne (/usr/lib/libnssckbi.so), le script /usr/sbin/make-ca inclus dans la page make-ca-1.14 peut générer une base de données NSS pour le système entier avec le paramètre -n, ou en modifiant le fichier /etc/make-ca/make-ca.conf.

Contenu

Programmes installés: certutil, nss-config et pk12util
Bibliothèques installées: libcrmf.a, libfreebl3.so, libfreeblpriv3.so, libnss3.so, libnssckbi.so, libnssckbi-testlib.so, libnssdbm3.so, libnsssysinit.so, libnssutil3.so, libpkcs11testmodule.so, libsmime3.so, libsoftokn3.so et libssl3.so
Répertoires installés: /usr/include/nss

Descriptions courtes

certutil

est l'outil de base de données de certificats de Mozilla. C'est un outil en ligne de commande qui peut modifier les fichiers de base de données cert8.db et key3.db de Netscape Communicator. Il peut aussi lister, générer, modifier ou effacer les certificats d'un fichier cert8.db et créer ou modifier le mot de passe, générer de nouveaux trousseaux de clés publiques et privées, afficher le contenu de la base de données des clés ou effacer des trousseaux de clés du fichier key3.db

nss-config

est utilisé pour déterminer les réglages de la bibliothèque NSS de la version installée

pk12util

est un outil pour importer des certificats et des clés depuis des fichiers pkcs #12 en NSS ou pour les exporter. Il peut aussi lister les certificats et les clés dans de tels fichiers