NSS-3.98

Introdução a NSS

O pacote Network Security Services (NSS) é um conjunto de bibliotecas projetadas para suportar o desenvolvimento em plataforma cruzada de aplicativos cliente e servidor habilitados para segurança. Aplicativos construídos com NSS podem suportar SSL v2 e v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, certificados X.509 v3 e outros padrões de segurança. Isso é útil para implementar SSL e S/MIME ou outros padrões de segurança da Internet em um aplicativo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.1.

Informação do Pacote

  • Transferência (HTTP): https://archive.mozilla.org/pub/security/nss/releases/NSS_3_98_RTM/src/nss-3.98.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4502fcae1b32da310fffdfb3c67f6985

  • Tamanho da transferência: 73 MB

  • Espaço em disco estimado exigido: 312 MB (adicionar 268 MB para testes)

  • Tempo de construção estimado: 0,9 UPC (com paralelismo=4; adicionar 16 UPC para testes em Ryzens da AMD ou ao menos 30 UPC em máquinas Intel)

Transferências Adicionais

Dependências do NSS

Exigida

NSPR-4.35

Recomendadas

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/nss

Instalação do NSS

Instale NSS executando os seguintes comandos:

patch -Np1 -i ../nss-3.98-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)

Para executar os testes, execute os seguintes comandos:

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

Nota

Alguma informação relativa aos testes:

  • HOST=localhost e DOMSUF=localdomain são exigidas. Sem essas variáveis, um FQDN é exigido que seja especificado e essa forma genérica deveria funcionar para todos(as), desde que localhost.localdomain esteja definido em /etc/hosts, conforme feito no livro LFS.

  • Os testes tomam um tempo longo para executar. Se desejado, existe informação no conjunto de comandos sequenciais all.sh relativa a executar subconjuntos da suíte total de teste.

  • Ao interromper os testes, a suíte de teste falha ao desligar os servidores de teste que estão executando. Isso leva a um loop infinito nos testes em que a suíte de teste tenta matar um servidor que não mais existe porque extrai o PID errado.

  • Os resultados da suíte de teste (em formato HTML!) podem ser encontrados em ../../test_results/security/localhost.1/results.html

  • Uns poucos testes podem falhar em algumas máquinas Intel por razões desconhecidas.

Agora, como o(a) usuário(a) 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

Explicações do Comando

BUILD_OPT=1: Essa opção é passada para make de modo que a construção seja realizada sem símbolos de depuração embutidos nos binários e as otimizações padrão do compilador sejam usadas.

NSPR_INCLUDE_DIR=/usr/include/nspr: Essa opção configura o local dos cabeçalhos nspr.

USE_SYSTEM_ZLIB=1: Essa opção é passada para make para garantir que a biblioteca libssl3.so esteja vinculada ao zlib instalado do sistema em vez da versão em árvore.

ZLIB_LIBS=-lz: Essa opção fornece os sinalizadores de vinculador necessários para vincular ao zlib do sistema.

$([ $(uname -m) = x86_64 ] && echo USE_64=1): A opção USE_64=1 é exigida em x86_64, caso contrário, make tentará (e falhará) criar objetos de 32 bits. O teste [ $(uname -m) = x86_64 ] garante que não tenha efeito em um sistema de 32 bits.

([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1): Isso testa se o sqlite está instalado e, se estiver, echo a opção NSS_USE_SYSTEM_SQLITE=1 para make, de modo que libsoftokn3.so vinculará à versão do sistema do sqlite.

NSS_DISABLE_GTESTS=1: Se você não precisa executar a suíte de teste NSS, anexe essa opção ao comando make, para evitar a compilação dos testes e economizar algum tempo de construção.

Configurando NSS

Se p11-kit-0.25.3 estiver instalado, o módulo de confiança do p11-kit (/usr/lib/pkcs11/p11-kit-trust.so) pode ser usado como um substituto imediato para /usr/lib/libnssckbi.so para transparentemente tornar as ACs do sistema disponíveis para aplicativos cientes de NSS, em vez da biblioteca estática fornecida por /usr/lib/libnssckbi.so. Como o(a) usuário(a) root, execute o seguinte comando:

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

Além disso, para aplicativos dependentes que não usam a base de dados interna (/usr/lib/libnssckbi.so), o script /usr/sbin/make-ca incluído na página make-ca-1.13 pode gerar uma base de dados NSS abrangente ao sistema com a chave -n ou modificando o arquivo /etc/make-ca/make-ca. conf.

Conteúdo

Aplicativos Instalados: certutil, nss-config e pk12util
Bibliotecas Instaladas: 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 e libssl3.so
Diretórios Instalados: /usr/include/nss

Descrições Curtas

certutil

é a ferramenta de base de dados de certificados da Mozilla. É um utilitário de linha de comando que consegue criar e modificar os arquivos de base de dados cert8.db e key3.db do Netscape Communicator. Ele também consegue listar, gerar, modificar ou deletar certificados dentro do arquivo cert8.db e criar ou mudar a senha, gerar novos pares de chaves públicas e privadas, exibir o conteúdo da base de dados de chaves ou deletar pares de chaves dentro do arquivo key3.db

nss-config

é usado para determinar as configurações da biblioteca NSS das bibliotecas instaladas NSS

pk12util

é uma ferramenta para importar certificados e chaves a partir de arquivos PKCS #12 para o NSS ou exportá-los. Ele também consegue listar certificados e chaves nesses arquivos