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
SQLite-3.45.1 e p11-kit-0.25.3 (tempo de
execução)
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
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 pelo módulo Name
Service Switch da myhostname
, conforme especificado
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
|