Oracle RDS DB的Oracle.ManagedDataAccess - TCPS:无效的SSL钱包(Magic)

问题描述 投票:2回答:1

我正在尝试使用SSL证书通过Oracle.ManagedDataAccess Nuget包连接到Amazon RDS实例。

我可以使用orapki生成的钱包通过SQL * Plus成功连接。通过跟随AWS instructions生成的钱包

我想通过Oracle.ManagedDataAccessin C#做同样的事情,我想尝试使用相同的钱包。

我的C#看起来像这样:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.ManagedDataAccess.Client;

namespace OracleDataAccess
{
    class Program
    {
        static void Main(string[] args)
        {
            var connectionString = @"USER ID=***;PASSWORD=***;DATA SOURCE=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCPS)(HOST = ***) (PORT = 2484)))(CONNECT_DATA = (SID = ***))   (SECURITY = (SSL_SERVER_CERT_DN = C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=***)))";
            var connection = new OracleConnection(connectionString);
            connection.Open();
        }
    }
}

我的app.config有钱包的位置:

<oracle.manageddataaccess.client>
    <version number="*">
      <settings>
        <setting name = "WALLET_LOCATION" value="(SOURCE=(METHOD =FILE)(METHOD_DATA=(DIRECTORY=C:\ssl_wallet))) "/>
      </settings>
    </version>
</oracle.manageddataaccess.client>

我在Open()上得到了一个OracleException:

Oracle.ManagedDataAccess.Client.OracleException:'网络传输:解析钱包位置时SSL失败'

内部异常:

TCPS:无效的SSL钱包(魔术)

它绝对可以找到并可以访问钱包文件,因为如果你将位置更改为无效的东西,你会得到一个不同的内部异常,例如:

DirectoryNotFoundException:找不到路径'C:\ ssl_wallet2 \ cwallet.sso'的一部分。

我找不到任何明显的东西来说明为什么钱包应该是无效的,因为SQL * Plus已经使用它来成功连接到同一个服务器。

Invalid SSL Wallet (Magic)不会产生任何我能找到的相关信息。这种方法中有什么我想念的吗?

.net oracle ssl amazon-rds oracle.manageddataaccess
1个回答
2
投票

事实证明,orapki生成的钱包文件不适合这里。

解决方案是使用Windows证书存储来代替持有RDS证书颁发机构。

在这种情况下,您下载PKCS7 file for RDS from AWS并将其导入Windows中的受信任的根证书颁发机构。

然后,您更改您的app.config以将您的钱包位置设置为Microsoft证书存储区,如下所示:

<oracle.manageddataaccess.client>
    <version number="*">
      <settings>
        <setting name = "WALLET_LOCATION" value="(SOURCE=(METHOD =MCS)) "/>
      </settings>
    </version>
</oracle.manageddataaccess.client>

然后一切都按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.