Axios: рдПрд╕рдПрд╕рдПрд▓ рдореБрджреНрджреЛрдВ рдХреЛ рдХреИрд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдирд╡ре░ 2016  ┬╖  35рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: axios/axios

рдХреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрд╕рдПрд╕рдПрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ (рдЬреИрд╕реЗ рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рдкреНрд░рдорд╛рдгрдкрддреНрд░) рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рд┐рдпреЛрд╕ (рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ) рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЗрди-рджреЗрди рд╡реИрд╕реЗ рднреА рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдП (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдк рдХрд╕реНрдЯрдо рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП axios рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП rejectUnauthorized рд╕реЗ false :

// At instance level
const instance = axios.create({
  httpsAgent: new https.Agent({  
    rejectUnauthorized: false
  })
});
instance.get('https://something.com/foo');

// At request level
const agent = new https.Agent({  
  rejectUnauthorized: false
});
axios.get('https://something.com/foo', { httpsAgent: agent });

рдЙрдореНрдореАрдж рд╣реИ рдпреЗ рдорджрдж рдХрд░реЗрдЧрд╛!

рд╕рднреА 35 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рдХрд╕реНрдЯрдо рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП axios рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП rejectUnauthorized рд╕реЗ false :

// At instance level
const instance = axios.create({
  httpsAgent: new https.Agent({  
    rejectUnauthorized: false
  })
});
instance.get('https://something.com/foo');

// At request level
const agent = new https.Agent({  
  rejectUnauthorized: false
});
axios.get('https://something.com/foo', { httpsAgent: agent });

рдЙрдореНрдореАрдж рд╣реИ рдпреЗ рдорджрдж рдХрд░реЗрдЧрд╛!

@рдирд┐рдХреБрд░рд▓реНрдЯрд╕реЗрд╡
рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдХреЙрдиреНрд╕реНрдЯ https = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('https');
рдЕрдХреНрд╖({
рдпреВрдЖрд░рдПрд▓: рдпреВрдЖрд░рдПрд▓,
рд╡рд┐рдзрд┐: 'рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ',
рд╢реАрд░реНрд╖рд▓реЗрдЦ: {
'рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░': 'рдПрдкреНрд▓рд┐рдХреЗрд╢рди/рдЬреЗрд╕рди'
},
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХрд╛рд░: 'рдЬреЗрд╕рди',
httpsAgent: рдирдпрд╛ https.Agent({rejectUnauthorized: false})
})
рддрдм (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ => {
})
рдХреИрдЪ (рддреНрд░реБрдЯрд┐ => {
})
}
}

рдЕрд╕рд▓ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдорд╛рдкреНрдд рдпрд╛ рдЕрдорд╛рдиреНрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред _any_ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдХреЗ рдкрд╛рд╕ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛;

рдкреНрд░рдХреНрд░рд┐рдпрд╛.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

рдпрд╣ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЦрддрд░рдирд╛рдХ рднреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

@ рдПрд░рд┐рдХ 24
рдЕрдЧрд░ рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рдкрде рдмрддрд╛рдПрдВред

рдореЗрд░реЗ рд▓рд┐рдП (рдПрдХ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЪреБрдХреЗ рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рд╡реИрдз рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рдЗрд╕рдиреЗ "рд╕рдЦреНрдд рдЙрдкрдпреЛрдЧ" рдХреЗ рдареАрдХ рдмрд╛рдж рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд╛рдо рдХрд┐рдпрд╛; рдореБрдЦреНрдп рдиреЛрдб.рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗред рдпрд╣ рд╕рднреА рдпрд╛ рдХреБрдЫ рдирд╣реАрдВ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ HTTPS рд▓реЗрдирджреЗрди рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИ рдЬрдм рдПрдЬреЗрдВрдЯ рдЕрдиреНрдпрдерд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рд▓реЗрдирджреЗрди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рджреГрд╢реНрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рди рд╣реЛ?

рдпрджрд┐ рдиреЛрдб рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ https рдореЙрдбреНрдпреВрд▓ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ????

https рдореЙрдбреНрдпреВрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛

+1

@psahni рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ ssl рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдП?

@Germinate - рдореИрдВ рдЕрднреА рднреА рдЙрд╕реА рдореБрджреНрджреЗ рд╕реЗ рдЬреВрдЭ рд░рд╣рд╛ рд╣реВрдВред рд╣рдореЗрдВ рджреЗрд╢реА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЛрдб рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рд╣рдореЗрдВ рд╕реЛрд░реНрд╕ рд╕реЗ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдЕрднреА рддрдХ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреГрдкрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд╢реА рдФрд░ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдиреЛрдб рдореЗрдВ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдмрдирд╛рдПрдВред рдФрд░ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рд╕реЗ рдиреЛрдб рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рддрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд░реВрдЯ рдХрд░реЗрдВред

@psahni рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА

@Germinate - рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ!ред рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рддреЛ рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рдХреНрдпрд╛ рд╣рдо рд╕реАрдзреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЕрднреА рднреА рджреЗрд╢реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛: /

рдХреНрдпрд╛ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рдПрдХ vue JS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдпрд╣ net::ERR_CERT_AUTHORITY_INVALID рддреНрд░реБрдЯрд┐ рдПрдХ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рдорд┐рд▓ рд░рд╣реА рд╣реИред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдореИрдВ https.Agent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВ vue рдкрд░ https рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рдЕрдВрджрд░ https рд╣реИ? рдпрджрд┐ рд╣рд╛рдБ рддреЛ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ?

рдпрджрд┐ рдЖрдк nuxt/axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдк рдирд┐рдореНрди рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдХрд░ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрд╣рд╛рдБ nuxt рдореЗрдВ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрд┐рдд рд╡рд┐рдзрд┐ рд╣реИ: https://axios.nuxtjs.org/extend.html

рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдпрд╣ рдкреИрдЯрд░реНрди рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

import https from 'https';

export default function ({ $axios, store }) {
    const agent = new https.Agent({  
        rejectUnauthorized: false
      });    
    $axios.onRequest(config => {
        if (process.env.dev) {
            config.httpsAgent = agent;
        }                     
    });
}

рдЗрд╕рдХрд╛ "рдкреЛрд╕реНрдЯ" рдЙрджрд╛рд╣рд░рдг рдХреНрдпрд╛ рд╣реИ?

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдПрд╕рдПрд╕рдПрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдЖрдк nuxt/axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдк рдирд┐рдореНрди рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдХрд░ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрд╣рд╛рдБ nuxt рдореЗрдВ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрд┐рдд рд╡рд┐рдзрд┐ рд╣реИ: https://axios.nuxtjs.org/extend.html

рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдпрд╣ рдкреИрдЯрд░реНрди рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

import https from 'https';

export default function ({ $axios, store }) {
    const agent = new https.Agent({  
        rejectUnauthorized: false
      });    
    $axios.onRequest(config => {
        if (process.env.dev) {
            config.httpsAgent = agent;
        }                     
    });
}

рдХреНрдпрд╛ рдореИрдВ рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ axios.js рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ asyncData рдпрд╛ axios рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ?

рдЗрд╕реЗ рджреЗрдЦреЛ, рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛: https://stackoverflow.com/a/54475750/8577483

рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдиреЛрдб рдХрд╛ https рдореЙрдбреНрдпреВрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https-browserify рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

const instance = axios.create({
    httpsAgent: new https.Agent({  
        rejectUnauthorized: false
    })
});

instance.post("https://...");

ERR_CERT_AUTHORITY_INVALID рд▓реМрдЯрд╛рддрд╛ рд╣реИ

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдирд┐рд░реНрдорд╛рдг-рдРрдк рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓рддреА рд╣реИ

const axios = require('axios');
const https = require('https');

const result = await axios('https://localhost:8080/search/' + text, {
    headers: {"lang": lang},
    httpsAgent: new https.Agent({
        rejectUnauthorized: false
    })
});

рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ ( const https = require('https'); ) рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рднрд╛рд╡ рдХреЗ process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред

рдпрд╣ рдмрдВрдж рдХреНрдпреЛрдВ рдерд╛? рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред

рдореИрдВ рдЕрдкрдиреЗ рд▓реЙрдЧ рдореЗрдВ 'рдПрд╕рдПрд╕рдПрд▓ рд╣реИрдВрдбрд╢реЗрдХ рд╡рд┐рдлрд▓' рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЪреЗрдХ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ред рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдХреЗ рдмрд╛рдж (рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реЛрдЪрдиреЗ рдХрд╛ рдПрдХ рдорд╛рд░реНрдЧ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕реАрдУрдЖрд░рдПрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдерд╛) рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдореЗрдВ рд╕реАрдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд╣реАрдВ рдерд╛ред рдЕрдЧрд░ рдЖрдкрдХреЛ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореБрдлреНрдд рдПрд╕рдПрд╕рдПрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЕрдкрдиреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://www.ssllabs.com/ssltest/ рдпрд╛ https://www.digicert.com/help/ рдЬреИрд╕реА рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЕрдЪрд╛рдирдХ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рднреА рдЬреВрдЭ рд░рд╣рд╛ рдерд╛ (рдХреБрдЫ рднреА рди рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж)ред рдореЗрд░реЗ рд▓рд┐рдП рдЬреЛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╣ рдмрд╕ рдПрдХ рдирдП рдЯреИрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдорд╛рдирдХ рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ "/users" рдорд╛рд░реНрдЧ рд╣реИ, рддреЛ {serverPath}/users рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЯреИрдм рдЦреЛрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕рдиреЗ рдореЗрд░реА рдорджрдж рдХреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВред

рдЬрдм рдЖрдк рдЕрдкрдирд╛ рджреЗрд╡ рдкрд░реНрдпрд╛рд╡рд░рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

рдирд┐рд░реНрдпрд╛рдд NODE_TLS_REJECT_UNAUTHORIZED=0 && рдпрд╛рд░реНрди рджреЗрд╡ --env.NODE_TLS_REJECT_UNAUTHORIZED=0

рдФрд░ рд╢рд╛рдпрдж рдЗрд╕реЗ рдЕрдкрдиреЗ package.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

"scripts": {
  "dev": "export NODE_TLS_REJECT_UNAUTHORIZED=0 && nuxt --env.NODE_TLS_REJECT_UNAUTHORIZED=0",

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ POST рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдХрд╛рдордХрд╛рдЬреА рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛? рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдЗрд╕реЗ рдПрдХ рднреА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

// doesn't work
axios.create({
    httpsAgent: new https.Agent({ rejectUnauthorized: false })
});

// it works
https.globalAgent.options.rejectUnauthorized = false;

рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
рдпрд╣ рдПрд╕рдПрд╕рдПрд▓ рддреНрд░реБрдЯрд┐ рд╣реИ: unable to get local issuer certificate (20) (рдХрд░реНрд▓ рдЕрдиреБрд░реЛрдз рд╕реЗ)

рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

рдореБрдЭреЗ @Falci рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ Error: self signed certificate in certificate chain

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ POST рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдХрд╛рдордХрд╛рдЬреА рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛? рдзрдиреНрдпрд╡рд╛рджред

import axios from "axios";
const https = require('https');

const resp = await axios({
      url,
      method: "POST",
      auth,
      httpsAgent: new https.Agent({
        rejectUnauthorized: false
      })
    });

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдореВрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдлрдВрд╕ рдЧрдпрд╛ред рдХреГрдкрдпрд╛ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдРрдк рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди?

рдирдорд╕реНрддреЗ @fozhao

рдпрджрд┐ рдЖрдк рдЕрдорд╛рдиреНрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рдЕрдкрдиреА рдореИрдХрдмреБрдХ рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  2. рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ рдФрд░ рдЙрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
  3. рдЖрдИрдУрдПрд╕ - рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред
    Android - рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрди рдХреЛ рдЕрдкрдиреЗ network_security_config.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system"/>
            <certificates src="user"/>
        </trust-anchors>
    </base-config>
     ....
</network-security-config>

рдпрд╣ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
рд╢реБрдХреНрд░рд┐рдпрд╛!

@Fonger plz рд╣рд┐рдЯ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдХрд░реЗрдВред

https рдореЙрдбреНрдпреВрд▓ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╣реИ, Vue/React/рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ... рдореВрд▓ рд░реВрдк рд╕реЗ process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИ
рдпрджрд┐ рдЖрдк рдПрд╕рдПрд╕рдПрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрд╕рдПрд╕рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рд╡реИрд╕реЗ рднреА рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░реАрдлреЗрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рд╕рд░реНрд╡рд░ рдкрд░ рдЙрд╕ env рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рдЧрд▓рддреА рдХреА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдЕрднреА рднреА рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ рд╣реИред

@tamangsuresh рдореИрдВ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

helmus picture helmus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

varmeh picture varmeh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ildella picture ildella  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

c0debreaker picture c0debreaker  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jdpagley picture jdpagley  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ