Can someone enlighten me the meaning of «NSS error -5961 (PR_CONNECT_RESET_ERROR)»?
I am trying to connect to bitbucket.org with «https» protocol but got a refuse from the server. Then, I try to use curl on the command line and see this output.
# curl -v https://bitbucket.org
* About to connect() to bitbucket.org port 443 (#0)
* Trying 131.103.20.168...
* Connected to bitbucket.org (131.103.20.168) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -5961 (PR_CONNECT_RESET_ERROR)
* TCP connection reset by peer
* Closing connection 0
curl: (35) TCP connection reset by peer
With openssl, I got this output.
# openssl s_client -connect bitbucket.org:443 -msg
CONNECTED(00000003)
>>> TLS 1.2 Handshake [length 00f4], ClientHello
01 00 00 f0 03 03 55 59 80 fa 72 25 f4 a5 84 49
... <I suspended this Hex value>
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 249 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
asked May 18, 2015 at 6:21
1
TCP connection reset by peer
This error from NSS is the same error you get with openssl (errno=104: ECONNRESET). This simply means, that the peer or some middlebox in between (firewall) is terminating the connection.
Since the site is reachable from my place I would suggest, that there is a firewall on your site blocking the connection.
The behavior is fairly typical for DPI firewalls in that the initial TCP connection is allowed but once you send the first data (ClientHello from TLS handshake) it will determine if your access is allowed by policy and let it pass or deny it by injecting a TCP RST.
answered May 18, 2015 at 6:57
2
yum update curl
solved the problem for me.
answered Nov 1, 2017 at 4:24
5
Can someone enlighten me the meaning of «NSS error -5961 (PR_CONNECT_RESET_ERROR)»?
I am trying to connect to bitbucket.org with «https» protocol but got a refuse from the server. Then, I try to use curl on the command line and see this output.
# curl -v https://bitbucket.org
* About to connect() to bitbucket.org port 443 (#0)
* Trying 131.103.20.168...
* Connected to bitbucket.org (131.103.20.168) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -5961 (PR_CONNECT_RESET_ERROR)
* TCP connection reset by peer
* Closing connection 0
curl: (35) TCP connection reset by peer
With openssl, I got this output.
# openssl s_client -connect bitbucket.org:443 -msg
CONNECTED(00000003)
>>> TLS 1.2 Handshake [length 00f4], ClientHello
01 00 00 f0 03 03 55 59 80 fa 72 25 f4 a5 84 49
... <I suspended this Hex value>
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 249 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
asked May 18, 2015 at 6:21
1
TCP connection reset by peer
This error from NSS is the same error you get with openssl (errno=104: ECONNRESET). This simply means, that the peer or some middlebox in between (firewall) is terminating the connection.
Since the site is reachable from my place I would suggest, that there is a firewall on your site blocking the connection.
The behavior is fairly typical for DPI firewalls in that the initial TCP connection is allowed but once you send the first data (ClientHello from TLS handshake) it will determine if your access is allowed by policy and let it pass or deny it by injecting a TCP RST.
answered May 18, 2015 at 6:57
2
yum update curl
solved the problem for me.
answered Nov 1, 2017 at 4:24
5
у меня есть удаленный сервер Windows 7, который доступен только через HTTPS на порту 768. Сервер использует подписанный сертификат из центра сертификации, указанного на локальном сервере CentOS.
всякий раз, когда я пытаюсь получить доступ к удаленному серверу через cURL с помощью следующей команды, он выдает следующие ошибки:
[usr@serv certs]# curl -3 -v https://1.1.1.1:768/user/login
* About to connect() to 1.1.1.1 port 768 (#0)
* Trying 1.1.1.1... connected
* Connected to 1.1.1.1 (1.1.1.1) port 768 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -5961
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error
(обратите внимание, что IP-адрес был скрыт по соображениям безопасности).
я запускаю следующую версию cURL:
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
стоит отмечая, что это работает на двух других удаленных серверах, которые работают под управлением Windows XP, а не windows 7.
Я попытался заставить cURL использовать SSLv3 (используя флаг -3 и флаг-SSLv3) без успеха.
Я только что протестировал ту же команду CURL на Raspberry Pi под управлением Raspbian и смог успешно подключиться. Поэтому я считаю, что это может быть проблема с версией cURL, используемой на сервере CentOS. Малина Pi выполняется следующая версия:
curl 7.26.0 (arm-unknown-linux-gnueabihf) libcurl/7.26.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.2 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp
Features: Debug GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
5 ответов
curl
С NSS прочитайте корневые сертификаты CA по умолчанию из "/etc/pki/tls/certs/ca-bundle.crt"
в формате PEM.
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
вы можете указать другой (ваш) сертификат CA (или пакет на NSS общая БД) по варианту curl --cacert
с файлом PEM, содержащим сертификат(ы) CA.
если вы не укажете сертификат вручную с помощью --cacert
опция, NSS пытается выбрать правильный из базы данных NSS (находится в /etc/pki/nssdb
) автоматически. Вы можете укажите его ник с помощью опции curl --cert
, этого должно быть достаточно, если ключ встроен в сертификат, если нет, вы можете указать файл PEM с ключом сертификата, используя --key
. Если ключ защищен парольной фразой, вы можете дать его опцией curl --pass
таким образом, вы можете импортировать свой сертификат в общую БД NSS с помощью НСС-инструменты (yum install nss-tools
)
добавление сертификата (общая команда line)
certutil -d sql:/etc/pki/nssdb -A -t <TRUSTARGS> -n <certificate nickname> -i <certificate filename>
о TRUSTARGS
укажите атрибуты доверия, которые необходимо изменить в существующем сертификате или применить к сертификату при его создании или добавлении в базу данных.
существует три категории доверия для каждого сертификата,
выражается в таком порядке: «SSL, email, подпись объекта». В каждом
позиция категории используйте ноль или более следующих кодов атрибутов:
- p запрещено (явно не доверяют)
- P доверенный peer
- C действительный CA
- T доверенный CA для выдачи сертификатов клиента (подразумевает c)
- C доверенный CA для выдачи сертификатов сервера (только SSL) (подразумевает c)
- сертификат у можно использовать для удостоверения подлинности или подписания
- w отправить предупреждение (используйте с другими атрибутами, чтобы включить предупреждение, когда сертификат используется в этом контексте)
коды атрибутов для категорий, разделенных запятыми, и
весь набор атрибутов, заключенный в кавычки. Например:— t «TCu, Cu, Tuw»
доверие корневому сертификату CA для выдачи сертификатов сервера SSL
certutil -d sql:/etc/pki/nssdb -A -t "C,," -n <certificate nickname> -i <certificate filename>
импорт промежуточного сертификата CA
certutil -d sql:/etc/pki/nssdb -A -t ",," -n <certificate nickname> -i <certificate filename>
самоподписанный сервера сертификат
certutil -d sql:/etc/pki/nssdb -A -t "P,," -n <certificate nickname> -i <certificate filename>
добавление личного сертификата и закрытого ключа для аутентификации клиента SSL
pk12util -d sql:/etc/pki/nssdb -i PKCS12_file_with_your_cert.p12
Список всех сертификатов, хранящихся в NSS DB
certutil -d sql:/etc/pki/nssdb -L
перечисление деталей сертификата
certutil -d sql:/etc/pki/nssdb -L -n <certificate nickname>
удаление сертификата
certutil -d sql:/etc/pki/nssdb -D -n <certificate nickname>
надеюсь, что это помогает.
недавно я столкнулся с той же проблемой в коробке CentOS 6. Оказалось, что сервер не обновлялся уже довольно давно и версия NSS была слишком старой. Исправлено путем обновления curl и NSS:
yum update -y nss curl libcurl
что происходит
Это звучит так, как будто вы испытываете проблему тайм-аута при подключении к серверу Windows 7.
Возможные Решения
один из возможных ответ указывает на первопричину ошибки 5961 оказалась проблема настройки MTU сети. Неясно, есть ли у вас доступ к серверу Windows 7 или полным компонентам среды, чтобы определить точную причину тайм-аута это приводит к сбою соединения. Я бы проверил MTU сервера Windows 7 и сравнил настройку MTU с настройкой других серверов. Если вы обнаружите, что вам нужно изменить настройки, вы можете следовать этому процедура.
эта ошибка также выдается, когда протокол ssl не поддерживается сервером, попробуйте указать все варианты / протоколы на сервере.XML-файл.
Это произойдет, когда шифры между клиентом и сервером не перекрываются.
например, сервер принимает только шифр ECHDE, но клиент (некоторая старая версия curl, построенная с nss) не имел этого шифра.
в этом случае сервер сначала отправит TCP клиенту для завершения попытки подключения SSL, когда он обнаружит, что шифр не перекрывается (клиент будет включать поддерживаемый шифр в «клиент hello»).
Может кто-нибудь просветить меня, что означает «ошибка NSS -5961 (PR_CONNECT_RESET_ERROR)»?
Я пытаюсь подключиться к bitbucket.org по протоколу «https», но получил отказ от сервера. Затем я пытаюсь использовать curl в командной строке и вижу этот вывод.
# curl -v https://bitbucket.org
* About to connect() to bitbucket.org port 443 (#0)
* Trying 131.103.20.168...
* Connected to bitbucket.org (131.103.20.168) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -5961 (PR_CONNECT_RESET_ERROR)
* TCP connection reset by peer
* Closing connection 0
curl: (35) TCP connection reset by peer
С openssl я получил этот вывод.
# openssl s_client -connect bitbucket.org:443 -msg
CONNECTED(00000003)
>>> TLS 1.2 Handshake [length 00f4], ClientHello
01 00 00 f0 03 03 55 59 80 fa 72 25 f4 a5 84 49
... <I suspended this Hex value>
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 249 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
TCP-соединение сбрасывается одноранговым
Эта ошибка из NSS является той же самой ошибкой, которую вы получаете с openssl (errno = 104: ECONNRESET). Это просто означает, что одноранговая или промежуточная точка (межсетевой экран) разрывает соединение.
Поскольку сайт доступен с моего места, я бы предположил, что на вашем сайте есть брандмауэр, блокирующий соединение.
Поведение является довольно типичным для брандмауэров DPI в том смысле, что исходное TCP-соединение разрешено, но как только вы отправите первые данные (ClientHello из рукопожатия TLS), он определит, разрешен ли ваш доступ политикой, и пропустит или запретит его, введя TCP RST.
ответ дан Steffen Ullrich3k
ням обновление локон
решил проблему для меня.
ответ дан Arkadiy Bolotov11