gpt4 book ai didi

ssl - 使用 ServiceStack.Redis 连接到 TSL Redis 云

转载 作者:行者123 更新时间:2023-12-04 22:37:02 26 4
gpt4 key购买 nike

我正在尝试使用 ServiceStack.Redis 使用 SSL 证书连接到基于云的 Redis 实例。 ServiceStack 文档提供了有关如何使用 SSL 连接到基于 Azure 的 Redis 的信息,但没有关于如何连接到非 Azure Redis 实例的信息或示例。
我有一个 pem、crt 和 key 文件,但我对它们所做的任何事情似乎都没有真正将它们传递给服务。我在连接字符串中设置了 ssl=true&sslprotocols=tls12 这似乎是第一步,但除此之外我不确定我应该怎么做才能正确传递证书以进行验证
编辑:当前代码

RedisConfig.CertificateSelectionCallback = BuildCertificateSelectionCallback;
RedisConfig.CertificateValidationCallback = Config_CertificateValidation;

var hosts = redCon.Split(',');
var sentinel = new RedisSentinel(hosts, masterName)
{
RedisManagerFactory = CreateRedisManager,
.....
};
container.Register(c => sentinel.Start());



private static X509Certificate BuildCertificateSelectionCallback(object sender,string targetHost,X509CertificateCollection, X509Certificate remoteCertificate, string[] acceptableIssuers)
{
return new X509Certificate(@"[filepath]\rl.pfx");
}

private static bool Config_CertificateValidation(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
//Validation not fully fleshed out yet
if(sslPolicyErrors == SslPolicyErrors.None;)
{
return true;
}
return false;
}

最佳答案

ServiceStack.Redis 使用 .NET 的 SslStream建立其 SSL 连接,您可以在其中配置其 RemoteCertificateValidationCallback验证是否接受指定的证书进行身份验证:

RedisConfig.CertificateValidationCallback = (object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors) => {
//...
};
还有一个 LocalCertificateSelectionCallback选择用于身份验证的本地 SSL 证书:
RedisConfig.CertificateSelectionCallback = (object sender,
string targetHost,
X509CertificateCollection localCertificates,
X509Certificate remoteCertificate,
string[] acceptableIssuers) => {
//...
}

关于ssl - 使用 ServiceStack.Redis 连接到 TSL Redis 云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65726745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com