首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过TCPS将我的应用程序连接到Amazon oracle db

无法通过TCPS将我的应用程序连接到Amazon oracle db
EN

Stack Overflow用户
提问于 2021-06-16 04:01:29
回答 3查看 424关注 0票数 3

嗨,我正在尝试从我的dot应用程序连接Oracle Db,但是我收到了错误:

网络传输:解析钱包位置的SSL失败

我的windows证书存储区中有所有必需的证书。我的连接字符串是:

代码语言:javascript
复制
 <appSettings>
 <add key="IMConnectionString" value="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=abc-prod-rds-01.cvi0vpnztsiw.eu-central-1.rds.amazonaws.com)(PORT=2484))(CONNECT_DATA=(SID=abcprod)) (SECURITY = (SSL_SERVER_CERT_DN = C=US,ST=Washington,L=Seattle,O=Amazon Web Services,OU=Amazon RDS,CN=Amazon RDS Root 2019 CA))); Password = *****;  User ID = ****"/>

我在app.config中的配置是:

代码语言:javascript
复制
 <oracle.manageddataaccess.client>
<version number="*">
  <settings>
    <setting name="WALLET_LOCATION" value="(SOURCE = (METHOD = MCS))" />
    <setting name="TraceLevel" value="7" />
    <setting name="TraceOption" value="1" />
    <setting name="TraceFileLocation" value="C:\trace" />
  </settings>
  <dataSources>
    <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
  </dataSources>
</version>
 </oracle.manageddataaccess.client>

我正在打这样的db电话:

代码语言:javascript
复制
 var queryExecutor = _executor.GetQueryExecutor(item.QueryDatabase);
 DataSet ds = queryExecutor.ExecuteQuery(item);

请让我知道我错过了什么?

在ODP.NET跟踪中,我也得到了以下跟踪:

Oracle.ManagedDataAccess.Client.OracleException (0x80004005):网络传输:解析钱包位置的SSL失败--> OracleInternal.Network.NetworkException (0xFFFFE700):网络传输:解析钱包位置时的SSL失败

在RDS服务器端,我可以看到以下错误:

22-2021 17:58:23 (ADDRESS=(PROTOCOL=tcps)(HOST=46.19.253.127)(PORT=5526)) * 542 TNS-00542: SSL握手失败TNS 12560:TNS:协议适配器错误

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-07-09 06:22:11

只是为了将来的参考回答我自己的问题。我使用的是基于文件的钱包,而不是MCS,在我的app.config文件中添加了以下设置之后,它就可以工作了:

代码语言:javascript
复制
 <settings>
    <setting name="WALLET_LOCATION" value="(SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = C:\app\client\ssl_wallet)))" />
    <setting name="TraceLevel" value="7" />
    <setting name="TraceOption" value="1" />
    <setting name="TraceFileLocation" value="D:\trace" />
    <setting name="SSL_CLIENT_AUTHENTICATION" value="FALSE" />
    <setting name="SSL_VERSION" value="1.0" />
    <setting name="SSL_CIPHER_SUITES" value="(SSL_RSA_WITH_AES_256_CBC_SHA)" />
    <setting name="SSL_SERVER_DN_MATCH" value="NO" />
    <setting name="TNS_ADMIN" value="C:\app\client\client_1\ssl_wallet"/>
票数 0
EN

Stack Overflow用户

发布于 2021-06-16 04:04:54

您能否尝试将TLS连接调整为1.2 (如果1.2失败,则降级为1.1等)

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

票数 0
EN

Stack Overflow用户

发布于 2021-06-28 10:00:19

有时,RDS似乎错过了更新证书(服务器端由AWS负责)。这是由多个用户报告的,有些人猜测为什么会出现这种情况,同时可能会出现一些DB操作或网络问题。特别是在长期运行的情况下,这种情况似乎会发生。您能否尝试重新启动RDS服务,因为这会强制证书更新?还要确保客户端安装和可用了正确的加密方法/lib。这是Java envs中常见的错误,不太确定这在C#/..net上有多重要--还有一些版本不支持AWS RDS不支持的1.2,这也不是AWS RDS所需要的。

还要确保TLS1.2真的像在这条线中一样工作正常

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67996172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档