我尝试通过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上工作。
请告知我,我做错了什么?
答案 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。