Почему этот https URL нельзя запросить с помощью nodejs? - PullRequest
0 голосов
/ 07 января 2019

У меня есть несколько веб-служб, которые мне нужно вызвать, все в https , и только один не работает, получил ошибку SSL

Ошибка: запись EPROTO 12632: ошибка: 14094410: процедуры SSL: ssl3_read_bytes: ошибка квитирования оповещения sslv3: openssl \ ssl \ record \ rec_layer_s3.c: 1407: номер оповещения SSL 40

Я использую версию узла 10.13.0 . Я пытался заставить протокол с https.globalAgent.options.secureProtocol = "TLSv1_method" без удачи.

Я почти уверен, что упускаю что-то очевидное, но должен признаться, что я немного растерялся: /

const https = require('https');

const url= "https://rec-www.calvados.fr";
const urlOptions= {};
const data= "";

const resolve= (o)=> {
    console.log("resolve", o);
}
const reject= (o)=> {
    console.log("reject", o);
}

const req= https.request(url, urlOptions, res => {
    let body= "";
    res.on("data", chunk => (body += chunk.toString()));
    res.on("error", reject);
    res.on("end", () => {

        if(res.statusCode && res.statusCode >= 200 && res.statusCode <= 299) {
            resolve({statusCode: res.statusCode, headers: res.headers, body});
        } else {
            reject("Request failed. status: " + res.statusCode + ", body: " + body);
        }
    });
});
req.on("error", reject);
req.write(data, "binary");
req.end();  

Измените URL-адрес на другой, чтобы он работал. Но с этим, бум ....

Есть идеи?

Приветствие.

- обновлена ​​-

Чтобы следовать ответу @ antonku, вот что я получил: openssl s_client -connect rec-www.calvados.fr:443

CONNECTED(000001E8)
---
Certificate chain
 0 s:/C=FR/postalCode=14035/ST=Calvados/L=CAEN/street=B.P. 12/street=12, rue Saint-Laurent/street=Conseil g\xC3\xA9n\xC3\xA9ral/O=DEPARTEMENT DU CALVADOS/OU=0002 221401185/CN=*.calvados.fr

   i:/C=FR/ST=Calvados/L=Caen/O=TBS INTERNET/OU=TBS INTERNET CA/CN=TBS X509 CA business 2
 1 s:/C=FR/ST=Calvados/L=Caen/O=TBS INTERNET/OU=TBS INTERNET CA/CN=TBS X509 CA business 2
   i:/C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
 2 s:/C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFmTCCBIGgAwIBAgIQY9hra7I57r0ELb0R9HO1fDANBgkqhkiG9w0BAQsFADCB
gTELMAkGA1UEBhMCRlIxETAPBgNVBAgTCENhbHZhZG9zMQ0wCwYDVQQHEwRDYWVu
MRUwEwYDVQQKEwxUQlMgSU5URVJORVQxGDAWBgNVBAsTD1RCUyBJTlRFUk5FVCBD
QTEfMB0GA1UEAxMWVEJTIFg1MDkgQ0EgYnVzaW5lc3MgMjAeFw0xNzAzMDMwMDAw
MDBaFw0yMDAzMjQyMzU5NTlaMIHgMQswCQYDVQQGEwJGUjEOMAwGA1UEERMFMTQw
MzUxETAPBgNVBAgTCENhbHZhZG9zMQ0wCwYDVQQHEwRDQUVOMRAwDgYDVQQJEwdC
LlAuIDEyMR4wHAYDVQQJExUxMiwgcnVlIFNhaW50LUxhdXJlbnQxGjAYBgNVBAkM
EUNvbnNlaWwgZ8OpbsOpcmFsMSAwHgYDVQQKExdERVBBUlRFTUVOVCBEVSBDQUxW
QURPUzEXMBUGA1UECxMOMDAwMiAyMjE0MDExODUxFjAUBgNVBAMMDSouY2FsdmFk
b3MuZnIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCl42Ohd2UY+MT6
RvlHyychy1GukrGRKf9znCsAxdFJ+c9YQleNnHK2+0t57ydd0CcHm2eNwRsw9OIv
vx6I44ByqBsjGCimCcYbx3Pex8L29zVc/C0qe9YbgJWl3LF20QjQKqUHFACn8IL3
AGOY8ORGkWoM5Gha5NiBBIAO+HOCz0YoZy6nWyKZ8+83tRwMCGj4kpvL3g5UXRJa
3x1WR8gXg0NUGKavbjjZaBKkfpz4+pbztVZoCViHn3Z9jGZJCudpocLc8nvzjuot
Jbf0jpW/vDWROxgLKWs9iq0y1mw0/lo3jsoThwaf5rMUHaAvLuaWjWL+og3xULOd
w5/02247AgMBAAGjggGqMIIBpjAfBgNVHSMEGDAWgBRx8gupo+3LA0oMPAE7vkxE
besq+DAdBgNVHQ4EFgQUXp6vDf8q9hWC1+I6Q+90vGeVbM0wDgYDVR0PAQH/BAQD
AgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
MEoGA1UdIARDMEEwNQYKKwYBBAHlNwIBATAnMCUGCCsGAQUFBwIBFhlodHRwczov
L2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECAjBABgNVHR8EOTA3MDWgM6Axhi9o
dHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVEJTWDUwOUNBYnVzaW5lc3MyLmNybDBy
BggrBgEFBQcBAQRmMGQwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQudXNlcnRydXN0
LmNvbS9UQlNYNTA5Q0FidXNpbmVzczIuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8v
b2NzcC51c2VydHJ1c3QuY29tMCUGA1UdEQQeMByCDSouY2FsdmFkb3MuZnKCC2Nh
bHZhZG9zLmZyMA0GCSqGSIb3DQEBCwUAA4IBAQBU0OfVabVbiAVSN3OeIPOFo9wW
8/mCtMZvI5Zas5rJeXzpB6EquWLL13CI7kMTChOKirzOwBPR0RrXp3XH5L0OIXFh
VgVaxwR2GvtjHj0w8/HJyB8AWMa+8PxkbKd1xUOnHoWSJWlp327/N5frcpj4MRR7
WUzx65EvzllAYJLvgm7R3VcdAWRsFQLEl94peG29FaGdSw7s9P/F7XOGwObet2or
6y4tPNy4G/p/HcF+n4+Gsva7Qb+MpcdI8reSh4v0BNUlYHFb9OhQBnBMOPZK65cZ
HuARrEevK6Kx0VABnCjb7sZPdUAnzbd1vlXSzE/A+dahHxc5xBM7qGvrIFPn
-----END CERTIFICATE-----
subject=/C=FR/postalCode=14035/ST=Calvados/L=CAEN/street=B.P. 12/street=12, rue Saint-Laurent/street=Conseil g\xC3\xA9n\xC3\xA9ral/O=DEPARTEMENT DU CALVADOS/OU=0002 221401185/CN=*.calvados.fr
issuer=/C=FR/ST=Calvados/L=Caen/O=TBS INTERNET/OU=TBS INTERNET CA/CN=TBS X509 CA business 2
---
No client certificate CA names sent
---
SSL handshake has read 4558 bytes and written 626 bytes
---
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DES-CBC3-SHA
    Session-ID: D67EB3B87B19B41B353B66E4CC57B1DD4611E626C6BE6FFB173053B4B25C80A0
    Session-ID-ctx:
    Master-Key: CB98E88373100902EB194E8E555A9991D001B55806408546E28C1C8733E700B45B5EECC8BAC5CC27C66309277C38B296
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1546955507
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)

Может ли последняя строка быть виновником?

1 Ответ

0 голосов
/ 07 января 2019

Для настройки соединения https на сервере, на который указывает rec-www.calvados.fr, должен быть установлен сертификат SSL. Как я вижу, на данный момент сервер не возвращает SSL-сертификаты в ответ, поэтому соединение не устанавливается.

Если вы хотите использовать безопасное соединение (https), необходимо настроить SSL-сертификат на стороне сервера. В качестве альтернативы, если секретность не важна, вы можете пойти с простой небезопасной http вместо https.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...