当我尝试使用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添加自定义CA,以便我可以使用所述证书(内部git-server)从一个位置下载,而无需使用所有CA检查
npm config set strict-ssl false
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?(如果没有:是否已经存在缺陷?)
我在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)如果没有,我该如何解决这个问题?
我有一个在 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 应用程序中配置它?
我正在尝试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将其读作: …
我想了解 Java 运行时对 SSL 证书存储的一般要求。我知道它可以复制到主机的 /etc/ssl/certs 文件夹,但对于 Java,是否需要导入到特定的密钥库以便运行时能够在应用程序的任何 SSL 验证过程中使用和使用?例如,如果我有一个 JRE 客户端,需要打包根/中间证书以使 Web 客户端内部连接到 site1.foo.com,我将需要依赖于链的根证书和中间证书来验证请求。
对于各种其他运行时环境,似乎我可以将它们放在 /etc/ssl/certs 文件夹中: NodeJS =>如何将自定义证书颁发机构(CA)添加到 Nodejs Go => Golang 从哪里获取根 CA?
但是,大概为了在 Java 中使用,我需要采取额外的步骤并使用 keytool 并导入到特定的密钥库中?据推测,它不能像上面那样从公共目录中获取?希望我的问题有意义。
当我使用 生成的证书时,如何连接到我的 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。总结一下,我做了以下事情:
elasticsearch-certutil使用 using命令通过以下方式生成证书cert:bin/elasticsearch-certutil cert --silent --pem --in config/instances.yml -out /certs/bundle.zip。instances.yml包含我的所有节点以及 kibana。bundle.zip包含所有证书和密钥以及 CA 的证书。
配置我的节点,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)