के साथ UNABLE_TO_VERIFY_LEAF_SIGNATURE मैं नोड https
एक स्वयं हस्ताक्षरित प्रमाणपत्र के साथ काम करता हूं, जो कि DNS नाम के बजाय आईपी पते पर आने वाले अनुरोध के साथ काम करता है। मैं इस कोडनोडजेस - स्वयं हस्ताक्षरित प्रमाणपत्र
var tls = require('tls');
var fs = require('fs');
var cert = fs.readFileSync(__dirname + '/cert.pem');
var key = fs.readFileSync(__dirname + '/key.pem');
var netServer = new tls.Server(options = { key: key, cert: cert });
var port = 54321;
netServer.listen(port);
netServer.on('secureConnection', function(socket) {
socket.end('heyyyoooo');
});
var client = tls.connect(port, 'localhost', {
ca: [ cert ],
rejectUnauthorized: true
});
client.on('data', function(data) {
console.log(data.toString());
process.exit();
});
यह प्रमाणपत्र (विषय के वैकल्पिक नाम के बिना) these instructions द्वारा उत्पन्न के साथ ठीक काम करता है जब अनुरोध localhost
को जारी किया जाता का उपयोग कर रहा है, लेकिन जब मैं 127.0.0.1
साथ बदलें, मैं Error: Hostname/IP doesn't match certificate's altnames
मिलता है। इसलिए मैंने subjectAltName
के साथ उत्पन्न एक नया प्रमाणपत्र बनाया है। ओपेन्सस्ल इसे इस प्रकार पढ़ता है:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 11107838472034892631 (0x9a26f83d0c0ebb57)
Signature Algorithm: sha1WithRSAEncryption
Issuer: CN=127.0.0.1
Validity
Not Before: Jun 24 09:51:56 2013 GMT
Not After : Jun 22 09:51:56 2023 GMT
Subject: CN=127.0.0.1
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus: *skipped*
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage:
Key Encipherment, Data Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Alternative Name:
DNS:localhost, IP Address:127.0.0.1
Signature Algorithm: sha1WithRSAEncryption
*skipped*
तो SAN ठीक से बनाए गए थे। अब मुझे Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE
मिल रहा है, मैं इसे कैसे काम करूं?
कि ओएस एक्स – Nick
@Nick पर मेरे लिए काम किया, वास्तव में, यह किसी भी ओएस पर काम कर सकते हैं। – Formiga
कृपया ध्यान दें कि यह बहुत महत्वपूर्ण सुरक्षा जांच अक्षम करता है। – oLeduc