标签: tls1.2

Domain = NSURLErrorDomain代码1202

嗨,我收到以下错误:

错误域= NSURLErrorDomain代码= -1202 \"此服务器的证书无效.您可能正在连接到假装为"server-prod.name-cloud.com"的服务器,这可能会使您的机密信息面临风险. \"UserInfo = {NSErrorFailingURLStringKey = https://server-prod.name-cloud.com/v3/project/session/926B9E6BE31B /,NSLocalizedRecoverySuggestion =您是否还要连接到服务器?,_ kCFStreamErrorDomainKey = 3,NSErrorFailingURLKey = https ://server-prod.name-cloud.com/v3/project/session/926B9E6BE31B /,_ kCFStreamErrorCodeKey = -9843,NSLocalizedDescription =此服务器的证书无效.您可能正在连接到假装为"server-prod.name-cloud.com"的服务器,这可能会使您的机密信息面临风险.}

我阅读了所有相关文档,我们应用了"常见故障"部分中的所有要求.

更多细节:

  • 仅从德国收到的错误(过去2W中来自意大利的4次除外)
  • 它在室内不可再现
  • 最终经过大量的重试后,上传将被抛出
  • 这是在iOS 10.xx和9.xx中获得的展位
  • 我使用2016-08 SSL安全策略的亚马逊服务器,所以根据苹果它应该没问题

在我使用的应用程序中:

<key>NSAppTransportSecurity</key>
   <dict>
      <key>NSAllowsArbitraryLoads</key>
   <true/>
</dict>
Run Code Online (Sandbox Code Playgroud)

注意 - 在生产中我总是使用HTTP,我留下NSAllowsArbitraryLoads,因为一些离岸测试人员可以将路由切换到HTTP进行调试.

ssl amazon-web-services ios nsurlsession tls1.2

15
推荐指数
1
解决办法
1万
查看次数

Spring Boot MongoDB Connectivity Issue

My Spring Boot application is trying to connect to MongoDB Database. The configuration is added on application.yml file. The application was working completely fine locally till yesterday.

但是当今天我在本地主机上运行它时,我收到以下错误:

2020-12-03 14:59:03.763[0;39m [32m INFO[0;39m [35m10692[0;39m [2m---[0;39m [2m[ngodb.net:27017][0;39m [36morg.mongodb.driver.cluster              [0;39m [2m:[0;39m Exception in monitor thread while connecting to server edugyanamcluster-shard-00-00.l4au7.mongodb.net:27017

com.mongodb.MongoSocketWriteException: Exception sending message
    at com.mongodb.internal.connection.InternalStreamConnection.translateWriteException(InternalStreamConnection.java:551) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:433) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.sendCommandMessage(InternalStreamConnection.java:273) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:257) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:83) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:33) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:105) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:62) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:129) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) …
Run Code Online (Sandbox Code Playgroud)

ssl mongodb spring-boot tls1.2

14
推荐指数
3
解决办法
2804
查看次数

无需更改 .NET 中的代码即可启用 TLS 1.2

我有 .NET 4.5.2 应用程序用于SmtpClient发送电子邮件。该应用程序安装在Windows 2012 R2服务器上。当我禁用 TLS 1 和 TLS 1.1 并仅启用 TLS 1.2 时,应用程序停止发送邮件。我认为这是因为 .NET 4.5.2 不支持 v1.2。

我正在考虑以下步骤

1> 在 Windows Server 上禁用 TLS 1 和 TLS 1.1,仅启用 TLS 1.2。
2>在Windows服务器上安装.NET 4.8。
3>将应用程序的目标框架更改为4.8(在csproj和web.config中)并重新编译。
4>部署应用程序。


基于文档的 问题Starting with .NET Framework 4.7.1, WCF defaults to the operating system configured version
1>这仅适用于 WCF 还是 SMTP 也默认为操作系统配置的版本?
2> 或者我是否需要明确设置版本,例如System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
3> 现在是否可以设置版本 TLS 1.2,并且将来 TLS 1.3 可用时应用程序应自动默认为 TLS 1.3?(无需再次更改代码)

.net c# smtpclient tls1.2 .net-4.8

14
推荐指数
1
解决办法
3万
查看次数

.NET 4.5和.NET 4.5.1默认启用TLS 1.1和TLS 1.2

在我们的Windows 2012 Server R2上,我们需要禁用TLS 1.0.

但是我们运行.NET 4.5 Wcf服务.我们发现,如果我们禁用TLS 1.0,WCF服务不再运行,因为我们收到错误"现有连接被远程主机强行关闭".

.NET 4.5和.NET 4.5.1中是否默认启用了TLS 1.1/1.2?如果没有,我们假设是这样的,我们在WCF项目中强制项目使用TLS 1.1/1.2?

.net c# ssl wcf tls1.2

13
推荐指数
2
解决办法
3万
查看次数

我们如何在Guzzle中指定TLS/SSL选项?

我们开始在PHP中使用Guzzle,其代码调用各种不同的API,其中一些不支持TLSv1.2,其中一些需要TLSv1.2.

迫使Guzzle使用最新协议的最佳方法是什么,除非我们知道它不会被识别?

php ssl curl guzzle tls1.2

12
推荐指数
2
解决办法
9210
查看次数

限制除TLS 1.2服务器端WCF之外的任何内容

我有一个简单的问题但无法在任何地方找到答案.我有一个WCF服务器应用程序.我希望它只使用TLS1.2.

我无法控制客户端,无法编辑计算机上的SCHANNEL设置.

我已经尝试了以下似乎只适用于传出连接(clientside)

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 
Run Code Online (Sandbox Code Playgroud)

除了每个代码TLS 1.2服务器端,有没有办法限制任何东西?

编辑:我正在使用net.tcp绑定并创建这样的绑定:

private static Binding CreateNetTcpBinding()
    {
        return new NetTcpBinding
        {
            ReceiveTimeout = TimeSpan.FromMinutes(10),

            ReliableSession =
            {
                Enabled = true,
                InactivityTimeout = TimeSpan.FromMinutes(1)
            },
            Security =
            {
                Mode = SecurityMode.Transport,
                Transport =
                {
                    ClientCredentialType = TcpClientCredentialType.Windows,
                    ProtectionLevel = ProtectionLevel.EncryptAndSign,
                    SslProtocols = SslProtocols.Tls12
                },
                Message =
                {
                    AlgorithmSuite = SecurityAlgorithmSuite.xxx <-- not here on purpose,
                    ClientCredentialType = MessageCredentialType.Windows
                }
            }
        };
    }
Run Code Online (Sandbox Code Playgroud)

如果有人可以告诉我在哪里检查当前连接的TLS版本(某些上下文),这也足够了!

先感谢您!

c# ssl wcf tls1.2

12
推荐指数
1
解决办法
2579
查看次数

TLS 1.2 change-cipher-spec的"解密错误",但正确读取MAC

我正在尝试将最新的TLS 1.0实现(我没写过)更新为TLS 1.2.

作为第一步,我集成了将明文初始化向量放入记录的TLS 1.1更改.那不是问题.它似乎工作得很好,我可以阅读https://example.comTLS 1.1,以及SSL Labs viewMyClient.html.

然后我适应了伪随机函数的TLS 1.2更改(对于大多数实际用途)P_SHA256而不是(更复杂和奇怪的)一半和一半MD5/SHA1 rigamarole.我第一次做错了,得到了一个无效的MAC错误,但这或多或少是我的一个错字,我修复了它.然后无效的MAC错误消失了.

但尽管如此,在发送ClientKeyExchange-> ChangeCipherSpec消息后,我从服务器返回"解密错误" (无论是相同的警报,https://google.com还是我尝试的任何事情).我收集ChangeCipherSpec消息只加密一个字节,将其放入带填充和MAC等的消息中.

如果我随机调整一个字节的MAC,它会回到抱怨无效的MAC. 令我困惑的是,MAC本身是作为GenericBlockCipher的一部分加密:

struct {
    opaque IV[SecurityParameters.record_iv_length];
    block-ciphered struct {
        opaque content[TLSCompressed.length];
        opaque MAC[SecurityParameters.mac_length]; // <-- server reads this fine!
        uint8 padding[GenericBlockCipher.padding_length];
        uint8 padding_length;
    };
} GenericBlockCipher;
Run Code Online (Sandbox Code Playgroud)

更新: FWIW,我添加了一个失败的1.2读取的Wireshark日志https://example.com,以及一个运行1.1会话的日志,运行相同的代码,不包括P_SHA256 MAC更新:

http://hostilefork.com/media/shared/stackoverflow/example-com-tls-1.2.pcapng(失败) http://hostilefork.com/media/shared/stackoverflow/example-com-tls-1.1.pcapng(成功)

那么,解密的问题到底是什么?填充似乎是正确的,就像在字节中加1或减1一样,我得到了无效的MAC错误. (规范说"接收方必须检查这个填充并且必须使用bad_record_mac警告来指示填充错误.",这是可以预期的.) 如果我在消息中损坏客户端-iv来自我以前加密的内容(只是在发送的版本中放入一个坏字节),这样做也给了我错误记录MAC.我希望破坏解密也是如此.

所以我对可能出现的问题感到疑惑:

  • 服务器演示了对有效MAC的辨别力,因此它必须已经解密.如何获得正确的MAC - 并且有解密错误?
  • 密码套件是一个旧套件(TLS_RSA_WITH_AES_256_CBC_SHA),但我只是一次解决一个问题......如果我没有弄错,那应该不重要. …

encryption ssl tls1.2

12
推荐指数
1
解决办法
920
查看次数

创建TLS客户端凭据时发生致命错误。内部错误状态为10013

最近部署了带有Active Directory和Exchange 2016的Windows 2016 Standard Server。

我们已针对服务器和客户端禁用了SSL 1.0、2.0和3.0,并禁用了TLS 1.0和TLS 1.1。

我们在系统日志中反复获得以下条目。是什么原因造成的,以及如何解决。

在此处输入图片说明

windows ssl tls1.2 windows-server-2016 exchange-server-2016

12
推荐指数
1
解决办法
3万
查看次数

PlanetScaleDb Prisma 设置 - 服务器不允许不安全连接,客户端必须使用 SSL/TLS

我正在启动一个全新的 PlanetScale 支持的项目,并使用 Prisma 设置。我按照此官方文档上的说明进行操作(除了更改数据库名称),在本地代理到数据库后,我发现自己无法运行npx prisma db push命令,出现以下错误:

server does not allow insecure connections, client must use SSL/TLS
Run Code Online (Sandbox Code Playgroud)

我对数据库设置非常陌生,在此之前我从来不知道我需要配置任何这些连接,因为我认为它们是作为我正在使用的数据库设置的一部分来处理的。

我知道我通过 Prisma 使用的 mySql 在对数据库执行任何交互之前需要 SSL 或 TLS,但我还没有找到任何方法来为我的环境进行设置。

我看到有人提到要?tls={true}在我的末尾添加内容DATABASE_URL,但这没有任何作用。此外,鉴于所提供的内容DATABASE_URL是由 PlanetScale 提供的

DATABASE_URL='mysql://un5pbmobnc73muwvbo77:************@us-east.connect.psdb.cloud/*******?ssl={"rejectUnauthorized":true}'
Run Code Online (Sandbox Code Playgroud)

我尝试更改{"rejectUnauthorized":true}{"rejectUnauthorized":false}. 这也没有改变什么。涉及对象的更复杂的解决方案是导致我的数据库完全找不到的参数。

我知道 SSL 已被弃用,我不应该使用它,但我不仅不知道如何正确地将 TLS 添加到我的 mySQL,而且正如您可能已经确定的那样,我发现自己有些无法完全掌握其概念完全实施。

mysql tls1.2 prisma planetscale

12
推荐指数
1
解决办法
9965
查看次数

避免在TLS客户端Hello中发送TLS_EMPTY_RENEGOTIATION_INFO_SCSV密码

Node.js TLS_EMPTY_RENEGOTIATION_INFO_SCSV默认发送密码以保护自己免受POODLE攻击.

我试图通过使用自定义密码列表覆盖TLS密码来避免发送此密码(即使这可能会带来安全风险).

但是,TLS_EMPTY_RENEGOTIATION_INFO_SCSV无论我做什么,Node.js都会继续发送密码.我试图故意避免发送此密码来模仿Firefox/Chrome的TLS协商.

这是我用来修改和检查节点发送的密码的代码:

var request = require('request');

var ciphers = [
    'ECDHE-ECDSA-AES128-GCM-SHA256',
    'ECDHE-RSA-AES128-GCM-SHA256',
    'ECDHE-ECDSA-AES256-SHA',
    'ECDHE-ECDSA-AES128-SHA',
    'ECDHE-RSA-AES128-SHA',
    'ECDHE-RSA-AES256-SHA',
    'DHE-RSA-AES128-SHA',
    'DHE-RSA-AES256-SHA',
    'AES128-SHA',
    'AES256-SHA',
    'DES-CBC3-SHA'
].join(':');

var options = {
    ciphers: ciphers,
    secureProtocol: 'TLSv1_2_method',
    url: 'https://www.howsmyssl.com/a/check'
};

request(options, function (error, response, body){
    if (!error) {
        console.log(body);
    }
    else {
        console.log(error);
    }
});
Run Code Online (Sandbox Code Playgroud)

有没有办法禁止在Node.js中发送此密码?

javascript ssl openssl node.js tls1.2

11
推荐指数
1
解决办法
2684
查看次数