相关疑难解决方法(0)

如何在Windows上运行Npm时修复SSL证书错误?

当我尝试使用npm安装包时,它不起作用.经过漫长的等待,我最终得到一个错误'无法建立隧道套接字,sutatusCode = 403'.

$ npm install coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm ERR! Error: tunneling socket could not be established, sutatusCode=403
npm ERR!     at ClientRequest.onConnect (c:\Program Files\nodejs\node_modules\npm\node_modules\request\tunnel.js:148:19)
npm ERR!     at ClientRequest.g (events.js:193:14)
npm ERR!     at ClientRequest.EventEmitter.emit (events.js:123:20)
npm ERR!     at Socket.socketOnData (http.js:1393:11)
npm ERR!     at TCP.onread (net.js:403:27)
Run Code Online (Sandbox Code Playgroud)

但是,当我在我的网络浏览器(谷歌浏览器)中浏览相同的URL时,它会正常加载(请参阅脚注).https://registry.npmjs.org/coffee-script

出了什么问题?


虽然我碰巧使用https代理,但我确信这不是问题所在.我已经配置了环境变量https_proxy(根据npm 用户指南).我知道环境变量是正确的,因为Python包管理器pip正确地遵循它.

我认为问题与SSL证书有关,因为如果我下载该URL wget,我会得到关于证书的明确错误

$ wget https://registry.npmjs.org/coffee-script
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = c:/progra~1/wget/etc/wgetrc
--2012-12-17 12:14:07--  https://registry.npmjs.org/coffee-script …
Run Code Online (Sandbox Code Playgroud)

npm

77
推荐指数
6
解决办法
17万
查看次数

npm添加根CA.

我正在寻找一种方法来向NPM添加自定义CA,以便我可以使用所述证书(内部git-server)从一个位置下载,而无需使用所有CA检查

npm config set strict-ssl false
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?(如果没有:是否已经存在缺陷?)

ca npm

52
推荐指数
2
解决办法
4万
查看次数

如何在docker镜像中添加CA根证书?

我在Ubuntu 14.04上的Docker 1.13.1容器中运行ASP.NET Core 1.1 Web API.

当代码尝试从HTTPS服务器检索某些数据时,我收到此证书身份验证错误:

 An error occurred while sending the request. ---> System.Net.Http.CurlException: Peer certificate cannot be authenticated with given CA certificates
   at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)
   at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult)
Run Code Online (Sandbox Code Playgroud)

HTTPS服务器是内部的,我们的公司CA签署了证书,因此我知道我可能需要注册内部CA.

到目前为止我发现的关于这个错误的所有内容和Docker谈到让docker本身运行,连接到repos等.我的Docker工作正常,Web API在容器外的Ubuntu服务器上运行没有问题.

1)我是否需要在docker镜像中添加CA根证书?

2)如果是这样,我该怎么办?

3)如果没有,我该如何解决这个问题?

ubuntu curl ssl-certificate docker

21
推荐指数
4
解决办法
3万
查看次数

无法使用 Kubernetes 上的 Node.Js 连接到 Elasticsearch(证书链中的自签名证书)

我有一个在 Kubernetes 集群中运行的 NodeJs 应用程序(我使用的是microk8s)。我还按照官方步骤在 Kubernetes 上设置 Elasticsearch。

问题

但是我无法连接到 Elasticsearch 集群。我收到此错误:

ConnectionError: self signed certificate in certificate chain
Run Code Online (Sandbox Code Playgroud)

这是我的连接的代码片段

ConnectionError: self signed certificate in certificate chain
Run Code Online (Sandbox Code Playgroud)

最小化复制

我在这里创建了这个问题的最小复制:https : //github.com/flolu/elasticsearch-k8s-connection。(设置说明在自述文件中)

基本上,在 Docker compose 中运行 Elasticsearch 时一切正常,但在 Kubernetes 中运行时无法连接。

造成这种情况的原因可能是我没有正确设置TLS证书,但我还没有找到任何相关信息。在创建 ES 客户端或在集群级别时,我是否在我的 NodeJs 应用程序中配置它?

node.js elasticsearch typescript kubernetes microk8s

10
推荐指数
1
解决办法
2328
查看次数

nodejs - 带有自签名证书的UNABLE_TO_VERIFY_LEAF_SIGNATURE

我正在尝试https使用自签名证书使节点工作,请求到达IP地址而不是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();
});
Run Code Online (Sandbox Code Playgroud)

当发出请求时,它与这些指令生成的证书(没有主题备用名称)一起工作正常localhost,但是当我用它替换它时127.0.0.1,我得到Error: Hostname/IP doesn't match certificate's altnames.所以我创建了一个新的证书生成subjectAltName.Openssl将其读作: …

ssl node.js

6
推荐指数
1
解决办法
3203
查看次数

Java 运行时是否强制要求使用 SSL 证书的密钥库?

我想了解 Java 运行时对 SSL 证书存储的一般要求。我知道它可以复制到主机的 /etc/ssl/certs 文件夹,但对于 Java,是否需要导入到特定的密钥库以便运行时能够在应用程序的任何 SSL 验证过程中使用和使用?例如,如果我有一个 JRE 客户端,需要打包根/中间证书以使 Web 客户端内部连接到 site1.foo.com,我将需要依赖于链的根证书和中间证书来验证请求。

对于各种其他运行时环境,似乎我可以将它们放在 /etc/ssl/certs 文件夹中: NodeJS =>如何将自定义证书颁发机构(CA)添加到 Nodejs Go => Golang 从哪里获取根 CA?

但是,大概为了在 Java 中使用,我需要采取额外的步骤并使用 keytool 并导入到特定的密钥库中?据推测,它不能像上面那样从公共目录中获取?希望我的问题有意义。

java ssl

5
推荐指数
1
解决办法
2646
查看次数

使用自行生成的证书从nodejs连接到elasticsearch时“无法验证第一个证书”

当我使用 生成的证书时,如何连接到我的 elasticsearch 集群(TLS 安全)elasticsearch-certutil

根据 ES 文档,这段代码应该可以做到这一点:

const client = new Client({
  node: config.elastic.node,
  auth: {
    username: "elastic",
    password: config.elastic.password
  },
  tls: {
    ca: fs.readFileSync( "./share/es/certs/ca.crt" ),
    rejectUnauthorized: false
  }
})
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给了我这个著名的错误:

ConnectionError: unable to verify the first certificate
Run Code Online (Sandbox Code Playgroud)

我已经通过 docker-compose 设置了 ES。总结一下,我做了以下事情:

  1. elasticsearch-certutil使用 using命令通过以下方式生成证书certbin/elasticsearch-certutil cert --silent --pem --in config/instances.yml -out /certs/bundle.zipinstances.yml包含我的所有节点以及 kibana。bundle.zip包含所有证书和密钥以及 CA 的证书。

  2. 配置我的节点,docker-compose.yml以便它们可以读取生成的证书。例如,

       ...
       - xpack.security.http.ssl.key=${ES_CERTS_DIR}/es01/es01.key
       - xpack.security.http.ssl.certificate_authorities=${ES_CERTS_DIR}/ca/ca.crt
       - xpack.security.http.ssl.certificate=${ES_CERTS_DIR}/es01/es01.crt
       - xpack.security.transport.ssl.certificate_authorities=${ES_CERTS_DIR}/ca/ca.crt …
    Run Code Online (Sandbox Code Playgroud)

ssl node.js express elasticsearch docker

1
推荐指数
1
解决办法
4049
查看次数