簡體   English   中英

使用StackExchange.Redis和stunnel在Redis上創建SSL連接

[英]Using StackExchange.Redis and stunnel to create an SSL connection on Redis

我已按照以下說明在Digital ocean上創建了Redis服務器

https://www.digitalocean.com/community/tutorials/how-to-encrypt-traffic-to-redis-with-stunnel-on-ubuntu-16-04

我試圖通過一個簡單的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM