[英]Error connection to Azure Redis Cache using StackExchange.Redis
[英]Using StackExchange.Redis and stunnel to create an SSL connection on Redis
我已按照以下說明在Digital ocean上創建了Redis服務器
我試圖通過一個簡單的C#控制台應用程序連接到它
using System;
using StackExchange.Redis;
using System.Security.Cryptography.X509Certificates;
namespace TestingRedis
{
class Program
{
static void Main(string[] args)
{
var configurationOptions = new ConfigurationOptions
{
EndPoints = { "PUBLIC IP:6379" },
Ssl = true,
//AbortOnConnectFail = false
};
configurationOptions.CertificateSelection += OptionsOnCertificateSelection;
var redis = ConnectionMultiplexer.Connect(configurationOptions);
var db = redis.GetDatabase();
string test = "Yes it works";
db.StringSet("hello", test);
string testRetrieve = db.StringGet("hello");
Console.WriteLine(testRetrieve);
Console.ReadLine();
}
private static X509Certificate OptionsOnCertificateSelection(object s, string t, X509CertificateCollection local, X509Certificate remote, string[] a)
{
return new X509Certificate2(@"C:\redis-server.crt");
}
}
}
每當我嘗試連接時,都會引發以下異常
附加信息:無法連接到Redis服務器。 要創建斷開的多路復用器,請禁用AbortOnConnectFail。 PING上的身份驗證失敗
運行netstat -plunt時,您可以看到stunnel正在監聽。
這是我們的隧道配置信息
pid = /run/stunnel-redis.pid
[redis-server]
cert = /etc/stunnel/redis-server.crt
key = /etc/stunnel/redis-server.key
accept = PUBLIC IP:6379
connect = 127.0.0.1:6379
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 PUBLIC IP:6379 0.0.0.0:* LISTEN 13736/stunnel4
為通道創建自簽名證書時,我將組織名稱和通用名稱設置為我的Redis服務器的公共IP地址。 這樣就解決了連接問題。
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:PUBLIC IP
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:PUBLIC IP
Email Address []:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.