Ionic + Angular + Cordova + Node jに基づいてモバイルアプリケーションを開発しています。nodejs環境変数 "NODE_EXTRA_CA_CERTS"
window.XMLHttpRequest介してアプリケーション訪問HTTPSサーバは:
module.exports = function request (method, url, body, headers) {
return new Promise(function (resolve, reject) {
var xhr = new window.XMLHttpRequest()
xhr.open(method, url)
xhr.onload = function() {
return resolve({
status: xhr.status,
body: xhr.responseText
})
}
xhr.onerror = xhr.onabort = function() {
return reject(new Error(xhr.statusText || 'XHR aborted: ' + url))
}
Object.keys(headers).forEach(function (header) {
xhr.setRequestHeader(header, headers[header])
})
xhr.send(body)
})
}
適切なルートCA、この機能を実行するためには、ノードの環境に挿入する必要があります。 私はhttps要求を行うコードを制御していないので、追加のルートCAをノードjsに有効にするポリシー/構成ベースのアプローチが好まれます。
私は検索して、そのノードが実際に私の目的に合うような環境変数 'NODE_EXTRA_CA_CERTS'を提供していることを知りました。
まだこの変数の使用方法に関する例は見つかりません。
私の実装は、npmパッケージdotenv-webpackをインストールすることです。
'NODE_EXTRA_CA_CERTS =。/ assets/cert/cacert.pem'(適切なルートCAへのファイルパス)という設定を含む.envファイルが追加されました。
変数NODE_EXTRA_CA_CERTSが正常に設定されたことを確認できます。それでも効果はないようです。セキュリティのためにサーバーへのアクセスが拒否されました。
私の質問:誰でも変数 'NODE_EXTRA_CA_CERTS'を利用する方法の例を教えてください。あなたはENVファイルでローカル変数を定義する必要はありませんので、あなたが話しているのenv変数は、「システム」レベルで提供される
おかげ