#mongodb #go #ssl #mongo-go #studio3t
#mongodb #Вперед #ssl #mongo-go #studio3t
Вопрос:
Я получаю следующую ошибку при попытке подключиться к серверу mongodb из приложения golang kubernetes pod.
Ошибка: tls: закрытый ключ не соответствует открытому ключу
Я использую mongo-go-driver версии 1.4.1
Ключ зашифрован RSA. —— НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ RSA —— Proc-Type: 4, ЗАШИФРОВАННЫЙ DEK-Info: ..
Код приложения PFB для подключения
m.context, _ = context.WithTimeout(context.Background(), 30*time.Second)
certFilePath := <path>
keyPassword := <password>
uri := "mongodb://user:password@<mongoserver>:27017/?authSource=<dbname>amp;authMechanism=scram-sha-1amp;connect=directamp;ssl=trueamp;sslClientCertificateKeyFile=%samp;sslClientCertificateKeyPassword=%samp;sslInsecure=trueamp;sslAllowInvalidCertificates=true"
uri = fmt.Sprintf(uri, certFilePath, keyPassword)
log.Println("ConnectDB: creating mongo client new")
clientOptions := []*options.ClientOptions{
options.Client().ApplyURI(uri),//.SetAuth(credential),
}
log.Println("ConnectDB: connecting client")
m.client, err = mongo.Connect(m.context, clientOptions...)
if nil != err {
panic(err)
}
Тот же ключ и сертификаты работают нормально при подключении с использованием Robo 3T или Studio 3T
Пожалуйста, помогите мне устранить ошибку несоответствия ключей. Происходит ли это из-за неправильного дешифрования ключа драйвером golang?
Комментарии:
1. Какой закрытый ключ не соответствует какому открытому ключу?
2. Закрытый ключ, предоставляемый клиентом (приложением golang), и открытый ключ на сервере mongodb. Однако тот же закрытый ключ работает с Robo 3T или Studio 3T
3. Если под открытым ключом сервера вы подразумеваете сертификат сервера, то закрытый ключ, используемый клиентом, не используется для проверки сертификата сервера — клиент использует для этого сертификат центра сертификации.
4. Я добавил sslInsecure как true, клиент примет все сертификаты сервера. Серверу необходимо проверить аутентификацию клиента, которая не выполняется
5. Ошибка, которую вы указали, не имеет ничего общего с аутентификацией.