λ΄ apache2 μλ²μμ μ체 μλͺ λ ν μ€νΈ μΈμ¦μλ₯Ό μ¬μ©νκ³ μμΌλ©° μμ²μ νΈμΆν λ λ€μ μ€λ₯κ° λ°μν©λλ€.
μ€λ₯: DEPTH_ZERO_SELF_SIGNED_CERT
λλ κ·Έκ²μ ν μ€νΈνκΈ° μν΄ μλμ λ€μ μ½λλ₯Ό μ¬μ©νκ³ μμ΅λλ€. λλ λν λ°λ μ μ¬μ©νκ³ μμΌλ©° μ΄λ rejectUnauthorized=true μ΅μ κ³Ό ν¨κ» μλ μμ² μ ν΄λΉ νλͺ©μ μ°Ύμ μ μμ΅λλ€( strictSSL=falseλ₯Ό μλνμ§λ§
var request = require('request'),
needle = require('needle');
request('https://127.0.0.1', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log("REQUEST:"+body);
} else {
console.error("REQUEST: "+error)
}
});
needle.get('https://127.0.0.1',{rejectUnauthorized:false},function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log("NEEDLE:"+body);
}
});
κ°μ λ¬Έμ κ° μμ΅λλ€. λ Έλ v0.10.1 λ° μ΅μ μμ² λ²μ μ μ¬μ©ν©λλ€.
v0.10.2λ₯Ό μ¬μ©νλ λμΌν λ¬Έμ
v0.11.1-preμ λμΌν λ¬Έμ . 보μ λꡬλ₯Ό κ°λ° μ€μ΄λ―λ‘ μ ν¨νμ§ μμ μΈμ¦μλ₯Ό μλ½ν΄μΌ ν©λλ€.
@client = tls.connect @port , @target , {rejectUnhauthorized : false}, =>
@client.write λ©μμ§
@client.setEncoding 'utf-8'
νμν μ½λλ λ€μκ³Ό κ°μ΅λλ€.
request({ url : 'https://127.0.0.1', rejectUnhauthorized : false }, function...
νΈμ§: λ΄κ° λ§λ μν°λ¦¬ λκΈμ μ κ±°νμ΅λλ€.
rejectUnauthorized: false
rejectUnauthorized: false
μ΄(κ°) μλνμ§ μμμ΅λλ€. λμ λ€μμ μΆκ°νλ©΄ μ€λ₯κ° μ κ±°λμμ΅λλ€.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0" // Avoids DEPTH_ZERO_SELF_SIGNED_CERT error for self-signed certs
NODE_TLS_REJECT_UNAUTHORIZED=0μ΄ μλνλμ§ νμΈν μ μμ§λ§ rejectUnauthorized: falseλ μλνμ§ μμ΅λλ€.
λ
Έλ v0.10.1 μ¬μ©
@dankohn & @cliffano μ¬κΈ°μ κ·νμ μ μμ λν΄ +1ν©λλ€.
@case NODE_TLS_REJECT_UNAUTHORIZEDλ https://github.com/joyent/node/pull/4023 μ λ°λΌ μ΄μ λμ(μλͺ»λ μ체 μλͺ
μΈμ¦μ νμ©)μΌλ‘ λλ리기 μν νμΆκ΅¬μΌ λΏμ
λλ€. -μλͺ
λ μΈμ¦μ μμ
.
λ°λΌμ RejectUnauthorized: falseλ ν΄μΌ ν μΌμ νμ§ μλ κ²μ²λΌ 보μ
λλ€.
μ°λ¦¬λ λ§μ κ²½μ°μ {rejectUnauthorized:false}
μλνκ³ μ΄λ€ κ²½μ°μλ μ½μ΄λ‘ μ νλμ§ μλ κ²μ²λΌ 보μΈλ€λ κ²μ μκ³ μμ΅λλ€. λλ΅ν΄μΌ ν μ§λ¬Έμ "μμ²μ΄ μ΄ μ΅μ
μ μ λλ‘ μ€μ νμ§ μκ±°λ μΌλΆ κ²½μ°μ μ½μ΄κ° μ΅μ
μ μ λλ‘ κ΄μ°°νμ§ μλ κ²½μ°κ° μμ΅λκΉ?"μ
λλ€.
κ·Έ μ§λ¬Έμ λ΅νλ €λ©΄ μμ ν μ¬ν κ°λ₯ν ν μ€νΈκ° νμν©λλ€.
λΆννλ ν μ€νΈ μΌμ΄μ€κ° μμ§λ§ λμμ΄ λ μ μμ΅λλ€.
https.globalAgent.options.secureProtocol = 'SSLv3_method';
μλ€ μ,
λμκ΄μμ μΌνλ λͺ¨λ λΆλ€κ» κ°μ¬λ립λλ€. μΌλΆ ν μ€νΈμ μ체 μλͺ λ μΈμ¦μλ₯Ό μ¬μ©νλ €κ³ νλλ° λμΌν μ€λ₯κ° λ°μνμ΅λλ€. μλμ μΈλΆμ 보λ₯Ό ν¬ν¨μμΌ°μ΅λλ€. λ€λ₯Έ κ²μ΄ νμνλ©΄ μλ €μ£Όμμμ€. strictSSLκ³Ό rejectUnauthorizedμ λͺ¨λ μ‘°ν©μ μλνμ§λ§ μλνμ§ μλ κ² κ°μ΅λλ€.
λ
Έλ λ²μ : 0.10.10
μ΄μ 체μ : μλμ° 7 x64
OpenSSL: Win32 1.0.1e
λ€μμ μ¬μ©νμ¬ μμ±λ μΈμ¦μ:
openssl genrsa βout priv.pem 1024
openssl req -x509 -new -key priv.pem -days 3650 -out cert.crt
μλ² μμ± μ½λ
var https = require('https');
var express = require('express');
var app = express();
var credentials = {
key: fs.readFileSync(__dirname + '/priv.pem', 'utf8'),
cert: fs.readFileSync(__dirname + '/cert.crt', 'utf8')
};
var server = https.createServer(credentials, app);
server.listen(3000);
λ€μκ³Ό κ°μ΄ μμ²μ μ¬μ©ν©λλ€.
var request = require('request');
request.defaults({
strictSSL: false, // allow us to use our self-signed cert for testing
rejectUnauthorized: false
});
request('https://localhost:3000', function(err) {
console.error(err); // outputs the zero_depth error
});
@dankohn μ΄ λλ₯Ό μν΄ μΌνμ΅λλ€.
[email protected]
λ° nodejs v0.10.15
rejectUnauthorized: false
μ¬μ ν μλνμ§ μμΌλ―λ‘ μ΄ ν΄νΉμ μ¬μ©ν΄μΌ ν©λλ€.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
μ ν¨μ±μ νμΈνκ³ μ체 μλͺ μΈμ¦μλ₯Ό μλ½νκ³ μΆκΈ° λλ¬Έμ μΆμ ν©λλ€.
ν μ€νΈλ₯Ό μμ±νλ λμ λ¬Έμ λ₯Ό μ°Ύμμ§λ§ 볡μ ν μ μμ΅λλ€.
μ΄ λ¬Έμ κ° ν₯λ―Έλ‘κ² λ°μνμ΅λλ€. ν μμμμλ μλνμ§λ§ λ€λ₯Έ μμμμλ μλνμ§ μλ strictSSL: falseλ₯Ό μ€μ ν©λλ€(rejectUnauthorized=falseλ μ€ν¨). @dankohn μ μ μμ΄ ν¨κ³Όκ° μμμ΅λλ€.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
restlerμμλ μλν©λλ€.
rejectUnauthorized: false
(λ
Έλ v0.10.26)μ μ¬μ©νμ¬ μλνκ² ν μ μμμ΅λλ€.
λ«ν μκ³ λ³ν©λ κ²μΌλ‘ μκ³ μμ΅λλ€.
νμ§λ§ λ€μμ μΈκΈν κ°μΉκ° μμ΅λλ€.
μΌλΆ νμ¬ λΌμ΄λΈλ¬λ¦¬λ μ¬μ ν μμ²μ λ°λΌ rejectUnauthorized: false
μμ΄ μ¬μ©λ©λλ€.
μ΄κ²μ΄ μ¬μ ν λ¬Έμ μ λκΉ?
μ΄κ²μ λ무 μ€λλμ΄μ λ«κ³ μμ΅λλ€. μ€μ λ‘ μ¬μ ν λ¬Έμ κ° μλ κ²½μ° μλ €μ£Όμλ©΄ λ€μ μ΄κ² μ΅λλ€.
μ΄κ²μ μ¬μ ν ββλμκ² λ¬Έμ μ λλ€
μ€ν¬λ¦°μ·: http://screencast.com/t/hcmHPBlxOHc
request.defaults(
strictSSL: false # allow us to use our self-signed cert for testing
rejectUnauthorized: false)
request "https://localhost:8000/index.html", (err, res, body) ->
return console.error err if err # DEPTH_ZERO_SELF_SIGNED_CERT
v0.10.20μλ μ¬μ ν λ¬Έμ κ° μμ΅λλ€.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0" μ¬μ©; μ§κΈμ μμμ
@frankfuu μ΄ 'νΈλ¦'μ΄ λ¬Έμμ μμ΄μΌ νλ€κ³ μκ°νμλκΉ?
μ, μ΄μ κ°μ SSL λ¬Έμ μ #811μ λν λͺ κ°μ§ λ¬Έμμ ν μ€νΈλ₯Ό μ¬μ©ν μ μμ΅λλ€. λͺ¨λ μΈμ¦μλ₯Ό μλ½νκ³ μνλ μΈμ¦μλ§ μλ½νλ κ²μ ν¬ν¨ν΄μΌ ν©λλ€.
@syzer κ°λ₯ν κΉμ? κΈμ, μ μ΄λ λλ κ·Έκ²μ΄ μ μ©νλ€λ κ²μ μμλ€.
μ¬μ ν λμκ² λ¬Έμ κ° μμ΅λλ€. v0.10.22.
@dankohn , @cliffano "NODE_TLS_REJECT_UNAUTHORIZED" : "0"μ μ΄λμ λ£μμ΅λκΉ?
μ΄κ²μ λ΄ μ½λμ
λλ€(μλνμ§ μμ).
var λΉλ = νμ('λΉλ');
var url = ' https://link.to/my/url/file.wsdl ';
var args = {μ΄λ©μΌ: ' [email protected] ',
soap.createClient(url, {"NODE_TLS_REJECT_UNAUTHORIZED" : "0"}, ν¨μ(μ€λ₯, ν΄λΌμ΄μΈνΈ) {
client.myOperation(μΈμ, ν¨μ(μ€λ₯, κ²°κ³Ό) {
console.log(μ€λ₯, κ²°κ³Ό);
});
});
νμΌμ 맨 μμ λμΌμμμ€.
// Avoids DEPTH_ZERO_SELF_SIGNED_CERT error for self-signed certs.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
λ¨ μ½ mailto:[email protected]
μ ν:+1-415-233-1000
2014λ 10μ 9μΌ λͺ©μμΌ μ€μ 11μ 41λΆμ Thanh [email protected]μ΄ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
@dankohn https://github.com/dankohn , @cliffano
https://github.com/cliffano μ΄λμ λ£μμ΅λκΉ?
"NODE_TLS_REJECT_UNAUTHORIZED": "0"μμ?μ΄κ²μ λ΄ μ½λμ λλ€(μλνμ§ μμ).
var λΉλ = νμ('λΉλ');
var url = ' https://link.to/my/url/file.wsdl ';
var args = {μ΄λ©μΌ: ' [email protected] ',
'00-14-22-01-23-45'};
soap.createClient(url, {"NODE_TLS_REJECT_UNAUTHORIZED" : "0"},
ν¨μ(μ€λ₯, ν΄λΌμ΄μΈνΈ) {
client.myOperation(μΈμ, ν¨μ(μ€λ₯, κ²°κ³Ό) {
console.log(μ€λ₯, κ²°κ³Ό);
});
});β
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHubμμ νμΈνμΈμ.
https://github.com/mikeal/request/issues/418#issuecomment -58528954.
@dankohn : μ¬μ ν κ°μ μ€λ₯ λ©μμ§κ° λνλ©λλ€. λ΄ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
var λΉλ = νμ('λΉλ');
var url = ' https://link.to/my/url/file.wsdl ';
var args = {μ΄λ©μΌ: ' [email protected] ',
soap.createClient(url, {rejectUna Authorized:false }, function(err, client) {
client.myOperation(μΈμ, ν¨μ(μ€λ₯, κ²°κ³Ό) {
console.log(μ€λ₯, κ²°κ³Ό);
});
});
@apiton : μ΄λ―Έ ν΄κ²°ν μ μμ΅λκΉ? μ¬μ ν κ°μ λ¬Έμ κ° μμ΅λλ€.
λ΄ URLμ΄ " https://www. "λ‘ μμνμ§ μμ§λ§ " https://link. "κ° λ¬Έμ μΌ μ μμ΅λκΉ?
@jksdua μμκ° νλ²νκ³ μ€λ₯λ₯Ό μ¬νν μ μμμ΅λλ€.
@fourq λ° @jksdua λ¬Έμ λ₯Ό λͺ¨λ ν΄κ²°νλ €λ©΄ λ€μμ μνν©λλ€.
var request = require('request');
var request = request.defaults({
strictSSL: false,
rejectUnauthorized: false
});
λλ
var request = require('request').defaults({
strictSSL: false,
rejectUnauthorized: false
});
defaults
λ©μλλ ν¨μλ₯Ό λ°νν©λλ€.
λ°λΌμ κΈ°λ³Έ μ΅μ
μ΄ μλνλ €λ©΄ request
λ³μλ₯Ό ν¨μμ ν λΉν΄μΌ ν©λλ€.
λν @frankfuu rejectUnauthorized
μ΅μ
μΌλ‘ μμ²μ μ¬μ©νλ λ°©λ²μ μλ₯Ό μ 곡ν μ μμ΅λκΉ?
μ¬μ ν λ¬Έμ κ° μλ κ²½μ° λ€λ₯Έ ν μ€νΈ μΌμ΄μ€λ₯Ό λ°κ³ μΆμ΅λλ€.
@thadeuszlay λ°©κΈ λ€μμ μ¬μ©νλ λ° λμμ μμ²
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
μ¬μ ν λμμ΄ νμνμλκΉ?
μ°Έκ³ λ²μ 2.45.0
μμ²μ μ¬μ©νλ©΄ strictSSL
λ₯Ό falseλ‘ μ€μ νλ©΄ rejectUnauthorized
falseκ° λ©λλ€.
κ·Έλ¬λ strictSSL
λ₯Ό false λ‘ μ§μ νμ§ μμΌλ©΄ rejectUnauthorized
κΈ°λ³Έκ°μ undefined
μ
λλ€.
λλ κ·Έκ²μ΄ μνλ νλμ΄λΌκ³ κ°μ ν©λλ€.
μλ νμΈμ @seanstrom
λ΄κ° λ§λ μμ λ κΈ°μ΅λμ§ μμ§λ§ @fourq κ° κ°μ§κ³ μλ κ²κ³Ό λΉμ·νμ΅λλ€.
request.defaults(
μ격ν SSL: κ±°μ§
RejectUnauthorized: κ±°μ§)
"νΈλ¦"μ μ¬μ©ν μ΄νλ‘ λ¬Έμ κ° μμμ΅λλ€.
@frankfuu
@fourq μ μλ₯Ό κΈ°λ°μΌλ‘ μμ μ루μ
μ μκ°ν΄ λμ΅λλ€.
https://github.com/mikeal/request/issues/418#issuecomment -58959393
κ·Έκ²μ΄ λΉμ μκ² ν¨κ³Όκ° μλμ§ μ΄ν΄λ³΄κ³ μ μ μμ΅λκΉ?
μ°Έκ³ λ²μ 2.45.0μ Requestμμλ strictSSLμ falseλ‘ μ€μ ν μ μμΌλ©°, κ·Έλ¬λ©΄ rejectUnauthorizedλ falseκ° λ©λλ€.
RejectUnauthorized μμ΄ μ΄μ μ μ€ν¨ν wfmμ λλ€.
@andig λ΄ μ±ν
μ©μ΄κ° μ½κ° λͺ¨νΈνμ¬ λ€μκ³Ό κ°μ΄ λ§νκ³ μμμ νμΈν©λλ€.
strictSSL: false
λ₯Ό μ¬μ©νλ©΄ ν¨κ³Όμ μ
λλ€.
μ³μ?
@andig λ΄ μ±ν μ©μ΄κ° μ½κ° λͺ¨νΈνμ¬ λ€μκ³Ό κ°μ΄ λ§νκ³ μμμ νμΈν©λλ€.
@seanstrom μ μΉν μΈμ΄λ₯Ό μ©μνμμμ€.
strictSSL μ¬μ©: falseκ° ν¨κ³Όμ μ λλ€. μ³μ?
μ³μ. RejectUnauthorized: falseκ° νμν μ΄μ μ μ€ν¨ν SSL μ°κ²°μ΄ μ΄μ strictSSL: falseμμλ§ μλν©λλ€.
μ΄ λ¬Έμ λ₯Ό μ’
λ£νκ² μ΅λλ€.
μ΄κ²μ΄ μ¬μ ν λκ΅°κ°μκ² λ¬Έμ λΌλ©΄ λ€μ μ΄κ² μ΅λλ€.
μλ € μ€μ
μ¬κΈ°μ μ¬μ ν λ¬Έμ v10.0.32
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"μ μλν λ;
λλ μ»λ€:
_stream_readable.js:748
throw new Error('μ§κΈμ μ΄μ λͺ¨λλ‘ μ νν μ μμ΅λλ€.');
@webduvet μ½λ μνμ μ κ³΅ν΄ μ£Όμκ² μ΅λκΉ?
μ΄ λ¬Έμ λ₯Ό λλ²κΉ
νλ λ° λμμ΄ λ©λλ€.
@seanstrom νμ€ν, nodejs λ¬Έμμ λ§€μ° κ°λ¨ν μνμ΄μμ΅λλ€.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; var tls = μꡬ('tls'); var fs = μꡬ('fs'); λ³μ μ΅μ = { μΈμ¦μ: fs.readFileSync('test-cert.pem'), μ격ν SSL: κ±°μ§ }; var cleartextStream = tls.connect(8000, μ΅μ , ν¨μ() { console.log('ν΄λΌμ΄μΈνΈ μ°κ²°', cleartextStream.authorized? 'μΉμΈλ' : 'μΉμΈλμ§ μμ'); process.stdin.pipe(cleartextStream); νλ‘μΈμ€.stdin.resume(); });
@seanstrom μ체 μλͺ μΈμ¦μλ₯Ό μ¬μ©νλ €κ³ ν λ μ¬μ ν μ΄ μ€λ₯κ° λ°μν©λλ€.
λ¬Έμ λ rejectUnauthorized: falseκ° λͺ¨λ νμΈμ λλλ€. PEMμ΄λ ν€ λλ νμ© κ°λ₯ν μΈμ¦μ λͺ©λ‘μ μ 곡νμ§ μμλ μλνκΈ° λλ¬Έμ λλ€. μΈμ¦μ(λλ ν€)λ₯Ό μ 곡νκ³ μμ² μμ§ μ§μμ΄ μ€μ λ‘ μΈμ¦μ λͺ©λ‘μ νμΈνλλ‘ ν΄μΌ ν©λλ€.
μ, rejectUnauthorized: false
λλ strictSSL: false
λ λͺ¨λ μΈμ¦μ νμΈμ ν΄μ νκΈ° λλ¬Έμ μ΄μμ μΈ μ루μ
μ΄ μλλλ€. μ체 μλͺ
λκ±°λ μΈμλμ§ μλ μΈμ¦μμ λν΄ μ체 CAλ₯Ό μΆκ°ν μ μμ΅λλ€. μ΄λ₯Ό μννλ λ°©λ²μ λν μλ HTTPS ν
μ€νΈλ₯Ό μ΄ν΄λ³΄μμμ€. https://github.com/request/request/blob/master/tests/test-https.js
κ³ λ§μ, λμΌλ . κ·Έ ν μ€νΈλ μ°λ¦¬κ° 무μμ μλͺ»νκ³ μλμ§ λͺ νν νλ λ° λμμ΄ λμμ΅λλ€. λ¨Όμ μ체 μλͺ λ CAλ₯Ό λ§λ λ€μ ν΄λΉ CAλ₯Ό μ¬μ©νμ¬ μλ² μΈμ¦μμ μλͺ νλ λμ μ체 μλͺ λ μΈμ¦μλ₯Ό μ¬μ©νμ΅λλ€. κ·Έκ² μ°λ¦¬κ° νλ κ²μ΄λΌκ³ μκ°νμ§λ§ μ°λ¦¬λ κ·Έλ μ§ μμμ΅λλ€.
μ리λ₯Ό μ΄ν΄νκ³ μΆμ λΆλ€μ μν΄.
https://nodejs.org/dist/v0.12.9/docs/api/tls.html#tls_tls_connect_options_callback
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "1";
var tls = require('tls');
var fs = require('fs');
var constants = require('constants');
var util = require('util');
var options = {
host: 'localhost',
strictSSL: true,
ca: [fs.readFileSync('trusted1.pem'), fs.readFileSync('trusted2.pem') ],
rejectUnauthorized: true, // Trust to listed certificates only. Don't trust even google's certificates.
secureOptions: constants.SSL_OP_NO_SSLv3 | constants.SSL_OP_NO_SSLv2 | constants.SSL_OP_NO_TLSv1 | constants.SSL_OP_NO_TLSv1_1,
secureProtocol: 'SSLv23_method',
ciphers: 'ECDHE-RSA-AES128-SHA256'
};
var socket = tls.connect(3001, options, function() {
console.log('client connected',
socket.authorized ? 'authorized' : 'unauthorized',
socket.encrypted ? 'encrypted' : 'unencrypted',
'\nCipher: ' + util.inspect(socket.getCipher()),
'\nCert Info: \n' + util.inspect(socket.getPeerCertificate(true)));
//process.stdin.pipe(socket);
//process.stdin.resume();
});
μ€μ λ‘ λͺ¨λ λ¬Έμ λ ν΄λΌμ΄μΈνΈ μμ€ν
μ SSL μΈμ¦μ ꡬμ±μ΄ μλ€λ κ²μ
λλ€.
λ¨Όμ μμ€ν
openSslμ ꡬμ±ν λ€μ process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"μ λν get λλ post μμ²μ μΆκ°νμμμ€. κ·Έκ²μ inshaa μλΌλ₯Ό μλ ν κ²μ
λλ€
μλ νμΈμ,
λΉμ·ν λ¬Έμ μ μ§λ©΄νκ³ μμ§λ§ "GET"μ΄ μ λλ‘ μλνλ λμ "POST" λ°©λ²μμλ§ λ°μν©λλ€. μμΈν μ 보λ λ€μκ³Ό κ°μ΅λλ€.
ν μ€νΈ μ½λ:
`
var ν리μ€λΉ = μꡬ('ν리μ€λΉ');
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
var CONF = process.env['CONF'];
var κ΅¬μ± = μꡬ('../config/' + CONF);
var λ°μ΄ν° = require('../tests_data/batch_data.json');
frisby.globalSetup({
μꡬ: {
μ격ν SSL: κ±°μ§,
κ±°λΆ κΆν μμ: κ±°μ§,
ν€λ: {'μΉμΈ': 'ν ν°'},
inspectOnFailure: μ¬μ€
}
});
frisby.create('ν
μ€νΈ#1: νμ°½ν λ μλ리μ€')
.post(config.api_url + data.api_endpoint, data.test_strace, {rejectUnauthorized: false}, {json: true})
.inspectHeaders()
.inspectRequest()
.inspectJSON()
.expectJSON(data.batch_test_response_1)
.λμ Έ μ¬λ¦Ό();
`
μ€ν μ€λ₯:
μ€λ₯-1
Message:
Error: Error parsing JSON string: Unexpected token D
Given: Destination URL may be down or URL is invalid, Error: ESOCKETTIMEDOUT
Stacktrace:
Error: Error parsing JSON string: Unexpected token D
Given: Destination URL may be down or URL is invalid, Error: ESOCKETTIMEDOUT
at _jsonParse (/usr/src/app/frisby_api/node_modules/frisby/lib/frisby.js:1219:11)
at null.<anonymous> (/usr/src/app/frisby_api/node_modules/frisby/lib/frisby.js:650:20)
at null.<anonymous> (/usr/src/app/frisby_api/node_modules/frisby/lib/frisby.js:1074:43)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
μ€λ₯-2
Message:
TypeError: Cannot read property 'headers' of undefined
Stacktrace:
TypeError: Cannot read property 'headers' of undefined
at Frisby.<anonymous> (/usr/src/app/frisby_api/node_modules/frisby/lib/frisby.js:894:20)
at Frisby.<anonymous> (/usr/src/app/frisby_api/node_modules/frisby/lib/frisby.js:940:8)
at null.<anonymous> (/usr/src/app/frisby_api/node_modules/frisby/lib/frisby.js:1112:18)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νλ €λ©΄ μ¬κΈ°μμ 무μμ μ λ°μ΄νΈν΄μΌ ν©λκΉ?
κ°μ¬ ν΄μ
μ΄κ²μ μΆκ°νλ©΄ ν΄κ²°ν΄μΌ ν©λλ€.
https.globalAgent.options.rejectUnauthorized = κ±°μ§;
κ°μ₯ μ μ©ν λκΈ
rejectUnauthorized: false
μ΄(κ°) μλνμ§ μμμ΅λλ€. λμ λ€μμ μΆκ°νλ©΄ μ€λ₯κ° μ κ±°λμμ΅λλ€.