Estou com um problema na minha caixa do CentOS 7 ao fazer qualquer coisa que exija SSL, incluindo curl, wget ou atualização via YUM.
A saída é sempre a mesma:
[root@localhost ~]# curl -I -v https://google.com
* About to connect() to google.com port 443 (#0)
* Trying 74.125.138.100...
* Connected to google.com (74.125.138.100) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* Server certificate:
* subject: CN=*.google.com,O=Google Inc,L=Mountain View,ST=California,C=US
* start date: Jun 16 08:37:32 2016 GMT
* expire date: Sep 08 08:29:00 2016 GMT
* common name: *.google.com
* issuer: CN=192.168.2.44,C=US
* NSS error -8172 (SEC_ERROR_UNTRUSTED_ISSUER)
* Peer's certificate issuer has been marked as not trusted by the user.
* Closing connection 0
curl: (60) Peer's certificate issuer has been marked as not trusted by the user.
More details here: http://curl.haxx.se/docs/sslcerts.html
Todos os certificados parecem estar "marcados como não confiáveis" (tentei isso com uma dúzia de URLs diferentes). Tentei reinstalar os certificados CA fazendo isso:
yum --disablerepo="epel" reinstall ca-certificates
mas isso não ajudou. Alguma ideia?
Responder1
Eu verificaria sua instalação do nss. É possível que esteja desatualizado/corrompido de alguma forma.
Verifique a versão que você está executando; o mais recente no centos 7 deve ser:
nss-config version
3.21.0
Em seguida, verifique se algum pacote nss foi modificado/corrompido:
rpm -Vv nss-*
Dependendo dos resultados, pode ser necessária uma atualização ou reinstalação do nss.
Você pode ver semidefinitivamente se há um problema com o nss alterando temporariamente as permissões nesse diretório (como root):
chmod 400 /etc/pki/nssdb/*
Em seguida, execute o comando curl como um usuário normal - se funcionar, a saída será algo como isto:
* Connected to google.com (172.217.4.206) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* Unable to initialize NSS database
* Initializing NSS with certpath: none
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Server certificate:
<clipped>
O que indica que ele usou apenas os certificados CA e não a autenticação baseada em nssdb.
Se este não for um problema relacionado ao NSS, aqui está umGuia RHELisso também se aplica ao CentOS e garante que você tenha uma configuração de certificado CA limpa. Não acredito que esse link esteja por trás do acesso pago; deixe-me saber se você precisa e não consegue acessá-lo.
Responder2
Em qual ambiente você está executando o CentOS7?
Há um bug desagradável relacionado aCentos 6.8atualização / NSS 3.21.0-8.el6 em sistemas sob virtualização (Zen) e/ou suporte CPU AES. Eu experimentei o problema após a atualização do CentOS 6.8 e NSS em instâncias Rackspace e AWS t1.micro.
Acredito que você esteja tendo um problema relacionado com uma atualização do Centos7 NSS.
https://www.centos.org/forums/viewtopic.php?t=58002
https://bugs.centos.org/view.php?id=10930#c26705
Como verificar se o AES-NI é suportado pela minha CPU? https://unix.stackexchange.com/questions/14077/how-to-check-that-aes-ni-is-supported-by-my-cpu
Em 6,8, Algumas pessoas conseguiramfazendo downgrade do NSS definindo a variável de ambiente: "NSS_DISABLE_HW_GCM=1"
# NSS_DISABLE_HW_AES=1
# yum downgrade nss nss-util nss-tools nss-sysinit
# yum install yum-plugin-versionlock
# yum versionlock add! nss-3.21.0-0.3.el6_7.x86_64 nss-sysinit-3.21.0-0.3.el6_7.x86_64 nss-tools-3.21.0-0.3.el6_7.x86_64 nss-util-3.21.0-0.3.el6_7.x86_64
Novamente, o código acima é para 6.8, NÃO para CentOS 7
Encontrei nss-3.21.0-0.3.el6_7.x86_64 depreciado e indisponível. Recarreguei todo o servidor a partir de um backup de imagem antes da atualização 6.8 e da versão YUM bloqueada nss nss-sysinit nss-tools nss-util antes de atualizar novamente.
NOTA: Eu adicionaria as informações acima como um 'comentário', NÃO como uma 'resposta', mas minha baixa pontuação de repetição me impede de comentar, só posso 'responder'.
Eu espero que isso ajude.
Responder3
Eu tive um problema semelhante. É verdade que é provavelmente meu próprio gaffau.
Foi necessário instalar*nss-*
[not showing this]# nss-config version
bash: nss-config: command not found
yum install -y nss-*
Installed:
nss-devel.x86_64 0:3.36.0-7.el7_5
nss-pam-ldapd.x86_64 0:0.8.13-16.el7
nss-pkcs11-devel.x86_64 0:3.36.0-7.el7_5
nss-softokn-devel.x86_64 0:3.36.0-5.el7_5
nss-softokn-freebl-devel.x86_64 0:3.36.0-5.el7_5
nss-util-devel.x86_64 0:3.36.0-1.el7_5
Dependency Installed:
nscd.x86_64 0:2.17-260.el7 nspr-devel.x86_64 0:4.19.0-1.el7_5
nss-config version
Usage: nss-config [OPTIONS] [LIBRARIES]
Options:
[--prefix[=DIR]]
[--exec-prefix[=DIR]]
[--includedir[=DIR]]
[--libdir[=DIR]]
[--version]
[--libs]
[--cflags]
Dynamic Libraries:
nss
nssutil
ssl
smime
[not showing this still]# nss-config --version
3.36.0