使用TLS的保险柜 - 错误的证书错误

时间:2017-12-21 13:25:13

标签: ssl

我尝试通过TLS连接到Vault并收到以下错误:

2017/12/21 15:11:55 http: TLS handshake error from 127.0.0.1:62734: remote error: tls: bad certificate

从命令库init:

Error initializing Vault: Put https://127.0.0.1:8200/v1/sys/init: x509: cannot validate certificate for 127.0.0.1 because it doesn't contain any IP SANs

我已经创建了这样的证书:

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -days 1024 -out rootCA.pem
openssl genrsa -out serverCertificate.key 2048
openssl req -new -key serverCertificate.key -out serverCertificate.csr
openssl x509 -req -in serverCertificate.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out serverCertificate.crt -days 500

在证书创建期间,我没有指定任何COMMON_NAME。

这是我的保险箱配置文件:

{
  "disable_mlock": true,
  "backend": {
     "file":{
       "path": "./secrets"
    }
  },
  "listener": {
    "tcp": {
      "address":"127.0.0.1:8200",
      "tls_disable": "false",
      "tls_cert_file":"./serverCertificate.crt",
      "tls_key_file":"./serverCertificate.key"
     }
  }
}

值得注意的是我在Mac上工作。

请告知我,我做错了什么?

1 个答案:

答案 0 :(得分:0)

当您生成证书时,由于您尝试通过127.0.0.1与Vault通信,因此需要为其提供127.0.0.1的其他SAN。它拒绝使用您使用的证书,因为请求通过127.0.0.1进行通信,并且证书未配置该IP。

本指南似乎对如何使用openssl进行了很好的概述:https://gist.github.com/jchandra74/36d5f8d0e11960dd8f80260801109ab0#creating-your-self-signed-certificate-with-subject-alternative-name-san

请注意,您可能需要使用配置文件,因为某些选项无法通过CLI传递给openssl。