将 REST API 用于带有节点的 Jira
Using REST API for Jira with node
我想从私人安装的 Jira 服务器收集信息,但我在执行此操作时遇到了问题。
当然,我可以使用我的 Chrome 浏览器连接该站点,它还发现从浏览器地址栏调用 REST API - https://myjiraaddr/rest/api/2/search
使用 curl 发送 REST API 请求可以在命令行中使用 -u 选项(用户名:密码)。
但是如果我尝试使用 nodejs 并得到一个错误提示 self signed certificate in certificate chain.
谁能解释一下造成这些差异的原因以及解决方法?
提前致谢:)
JiraApi = require('jira').JiraApi;
var jira = new JiraApi('https', 'myjiraaddress', 443, 'username', 'password', '2.0.alpha1');
jira.getCurrentUser(function(error, issue) {
console.log(error);
});
它打印...
Status: Error: self signed certificate in certificate chain
如果我使用 jira-client npm 包会出错...
RequestError: Error: self signed certificate in certificate chain
at new RequestError (/Users/hyoon/dev/node/work-tracker/node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (/Users/hyoon/dev/node/work-tracker/node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (/Users/hyoon/dev/node/work-tracker/node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (/Users/hyoon/dev/node/work-tracker/node_modules/request/request.js:185:22)
at Request.emit (events.js:310:20)
at Request.onRequestError (/Users/hyoon/dev/node/work-tracker/node_modules/request/request.js:877:8)
at ClientRequest.emit (events.js:310:20)
at TLSSocket.socketErrorListener (_http_client.js:426:9)
at TLSSocket.emit (events.js:310:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
cause: Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1474:34)
at TLSSocket.emit (events.js:310:20)
at TLSSocket._finishInit (_tls_wrap.js:917:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:687:12) {
code: 'SELF_SIGNED_CERT_IN_CHAIN'
},
error: Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1474:34)
at TLSSocket.emit (events.js:310:20)
at TLSSocket._finishInit (_tls_wrap.js:917:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:687:12) {
code: 'SELF_SIGNED_CERT_IN_CHAIN'
},
如果您处理的是自签名证书,您可以通过将 strictSSL
选项设置为 false
来绕过严格检查,如 docs 中所述:
const jira = new JiraApi('https', 'myjiraaddress', 443, 'username', 'password', '2.0.alpha1', false, false);
如果您不想绕过检查,您可能必须分叉库并修改请求的设置方式才能添加您的证书。有关详细信息,请参阅此问题:How do I use the node.js request module to make an SSL call with my own certificate?
我想从私人安装的 Jira 服务器收集信息,但我在执行此操作时遇到了问题。
当然,我可以使用我的 Chrome 浏览器连接该站点,它还发现从浏览器地址栏调用 REST API - https://myjiraaddr/rest/api/2/search
使用 curl 发送 REST API 请求可以在命令行中使用 -u 选项(用户名:密码)。
但是如果我尝试使用 nodejs 并得到一个错误提示 self signed certificate in certificate chain.
谁能解释一下造成这些差异的原因以及解决方法?
提前致谢:)
JiraApi = require('jira').JiraApi;
var jira = new JiraApi('https', 'myjiraaddress', 443, 'username', 'password', '2.0.alpha1');
jira.getCurrentUser(function(error, issue) {
console.log(error);
});
它打印...
Status: Error: self signed certificate in certificate chain
如果我使用 jira-client npm 包会出错...
RequestError: Error: self signed certificate in certificate chain
at new RequestError (/Users/hyoon/dev/node/work-tracker/node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (/Users/hyoon/dev/node/work-tracker/node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (/Users/hyoon/dev/node/work-tracker/node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (/Users/hyoon/dev/node/work-tracker/node_modules/request/request.js:185:22)
at Request.emit (events.js:310:20)
at Request.onRequestError (/Users/hyoon/dev/node/work-tracker/node_modules/request/request.js:877:8)
at ClientRequest.emit (events.js:310:20)
at TLSSocket.socketErrorListener (_http_client.js:426:9)
at TLSSocket.emit (events.js:310:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
cause: Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1474:34)
at TLSSocket.emit (events.js:310:20)
at TLSSocket._finishInit (_tls_wrap.js:917:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:687:12) {
code: 'SELF_SIGNED_CERT_IN_CHAIN'
},
error: Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1474:34)
at TLSSocket.emit (events.js:310:20)
at TLSSocket._finishInit (_tls_wrap.js:917:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:687:12) {
code: 'SELF_SIGNED_CERT_IN_CHAIN'
},
如果您处理的是自签名证书,您可以通过将 strictSSL
选项设置为 false
来绕过严格检查,如 docs 中所述:
const jira = new JiraApi('https', 'myjiraaddress', 443, 'username', 'password', '2.0.alpha1', false, false);
如果您不想绕过检查,您可能必须分叉库并修改请求的设置方式才能添加您的证书。有关详细信息,请参阅此问题:How do I use the node.js request module to make an SSL call with my own certificate?