首页 文章

证书链中的自签名证书

提问于
浏览
-1

我在Kubernetes容器中运行 node.js 服务 . 我的服务使用服务帐户内的令牌从POD内部调用API服务器 . 我的代码是这样的

var fs = require('fs');
var tokenFile ='/var/run/secrets/kubernetes.io/serviceaccount/token';
var restCall = function(serviceUrl,reqMethod,callback){  
var token = "";

fs.readFile(tokenFile, 'utf8', function(err, data) {
  if (err) throw err;
  token ='Bearer '+data;
});

var serviceUrl = https://<clusterName>/api/v1/nodes      
var options = {
  url: serviceUrl,  
  headers: {
    'Content-Type': 'application/json',
    'Authorization': token            
  },
  method: reqMethod
};

我收到此错误作为回应

证书链中的自签名证书 .

我可以通过rest客户端使用令牌进行调用,当我部署到容器时,它返回了套接字连接错误

3 回答

  • 0

    您使用https协议调用api,其中很可能证书未由外部CA签名 . 这个是正常的 . 在发出由其颁发的证书保护的服务之前,您应确保信任该CA . 大多数kube配置程序都会为您提供CA证书,以便您可以将其添加到受信任的证书中,或者在某些参数中提供给客户端 .

    另一方面,当你在你的kube集群中调用api时,应该可以访问像 http://kubernetes.default/api/v1/nodes 这样的URL .

  • 0

    尝试使用CA证书,您将在以下路径中获取它

    /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

    Radek Pieczonka在他的_1707203中提到了这一点,

  • 0

    错过了传递此环境变量node_tls_unauthorized = 0,这导致身份验证问题

相关问题