2881099 / FreeRedis

🦄 FreeRedis is .NET40+ redis client. supports cluster, sentinel, master-slave, pub-sub, lua, pipeline, transaction, streams, client-side-caching, and pooling.
MIT License
911 stars 160 forks source link

SSL 连接 添加证书 #164

Closed li-yuelun closed 9 months ago

li-yuelun commented 10 months ago

目前库中有 sslStream 但应该没有添加证书的方法。 是否可添加如下图的方法, 谢谢

image

2881099 commented 10 months ago

提供代码前端,我明天看看

li-yuelun commented 9 months ago

我自己是在0.3.7的版本上改的 是这样实现的

注册 var redis = new RedisClient( $"127.0.0.1:5555,password=password,defaultDatabase=11,ssl=true,retry=60000"); redis.Serialize = obj => JsonConvert.SerializeObject(obj); redis.Deserialize = (json, type) => JsonConvert.DeserializeObject(json, type); redis.userCertificateSelectionCallback += delegate { return SelectLocalCertificate("ca.crt"); }; redis.userCertificateValidationCallback += ValidateServerCertificate; RedisClient 更改

添加属性

public event RemoteCertificateValidationCallback userCertificateValidationCallback; public event LocalCertificateSelectionCallback userCertificateSelectionCallback;

DefaultRedisSocket 更改

添加属性

public event RemoteCertificateValidationCallback userCertificateValidationCallback; public event LocalCertificateSelectionCallback userCertificateSelectionCallback;

构造函数

public DefaultRedisSocket(string host, bool ssl, RemoteCertificateValidationCallback userCertificateValidationCallback, LocalCertificateSelectionCallback userCertificateSelectionCallback) { Host = host; Ssl = ssl; CertificateSelection = userCertificateSelectionCallback; CertificateValidation = userCertificateValidationCallback; }

然后再设置下SslStream就行了

2881099 commented 9 months ago

v1.2.5

ConnectionStringBuilder connectionString = "127.0.0.1:5555,password=password,defaultDatabase=11,ssl=true,retry=60000";
connectionString.CertificateSelection += delegate
{
    return SelectLocalCertificate("ca.crt");
};
connectionString.CertificateValidation += delegate
{
    return true;
};

var redis = new RedisClient(connectionString);
li-yuelun commented 9 months ago

感谢