如何从服务器上检查协商的TLS握手?
如果我有十几个端点,并且我的WebAPI服务配置为TLS 1.1和TLS 1.2,我如何检查每个传入的端点请求以查看哪个版本已协商? 因此,如果当前我的端点的消费者仅支持TLS 1.0和TLS 1.1,那么他们(显然?)会协商TLS 1.1握手.但是,如果其他消费者支持TLS 1.2和TLS 1.3,他们(显然?)会协商TLS 1.2握手. 我想跟踪所有的消费者,看看正在谈判哪些握手.我该如何要求? 解决方案 如果您使用的是IIS,看起来您可以在IIS日志中添加一些扩展日志. pla窃... er ...引用后代: 要启用此新功能,这四个服务器变量需要 被配置为IIS中自定义字段的来源 applicationhost.config.可以在任何一个上配置自定义记录 服务器级别或站点级别.这是示例站点级配置:
0 2024-04-13
编程技术问答社区
Unity tlsexception:握手失败Unitytls_x509verify_flag_not_trusted
我正在尝试更新我的应用程序的TcpClient将TLS与SslStream一起使用,而不是正常Stream,我为此使用的代码似乎在Unity之外使用,但是当集成在我的我的Unity 2019.1.8(也在2018年和2017年进行了测试)项目. 建立连接并打开新的SslStream我使用以下代码: public static void InitClient(string hostName, int port, string certificateName) { client = new TcpClient(hostName, port); if (client.Client.Connected) { Debug.LogFormat("Client connected succesfully"); } else { Debug.LogErrorFormat("Client couldn't con
0 2024-04-13
编程技术问答社区
仅在Windows Server 2012上无法创建SSL/TLS安全通道
我有一个奇特的问题,其中C#应用程序在我测试过的所有其他机器和其他客户端机器上都可以使用.但没有在我的ISP托管的Windows Server 2012上建立连接.该应用程序大约在大约2天前根据我的客户端在这台机器上使用,并使用.NET4.5.2.不幸的是,我不知道最近几天发生了什么. 我在这台机器上测试的内容: 使用Chrome URL工作 使用边缘的URL工作 用卷发工作击中URL 使用IE11 URL确实不是工作 使用我们的应用程序不是工作 使用快速测试应用程序不是工作 无论我在服务器上或应用程序上更改的设置如何. . 我的应用中的错误: AuthResponse is null: False AuthResponse ErrorException: System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at
0 2024-04-13
编程技术问答社区
C#和dotnet 4.7.1不能为TLS 1.2调用添加自定义证书
我有以下C#代码,使用自定义证书构建HTTPS调用.使用TLS 1.1时,呼叫正常.使用TLS 1.2时,呼叫断开.我使用卷曲,使用TLS 1.2也可以正常工作. c#代码: X509Certificate2Collection collection = new X509Certificate2Collection(); collection.Import("C:\\SomePath\\MyCertificate.pfx", "MyPassword", X509KeyStorageFlags.PersistKeySet); var cert = collection[0]; ServicePointManager.SecurityProtocol = ...; ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true; Ht
0 2024-04-13
编程技术问答社区
该请求中止无法创建SSL/TLS安全频道-httpwebrequest
我正在向第三方API进行网络招标,而且工作正常.在API之间更改了证书之间,现在当我从开发环境中提出请求时,我会得到响应,因为中止该请求无法创建SSL/TLS安全频道. 我尝试在代码中设置不同的协议,并且响应没有任何更改.我在Explorer中也遇到了不同的错误.但这是在启用SSL 3后修复的. 我正在代码中使用httpwebrequest.最初的DLL在.NET 3.5中,现在已更新为.NET 4.6. 在Firefox中检查证书详细信息时,我可以看到证书为TLS 1.3.据我所知,在.NET 4.6.1中不支持它,因为当我将其设置为TLS值时,我获得协议不支持错误. 开发环境是Windows Server2016.同一API在Microsoft Cloud中的生产中工作.不确定确切的服务器版本. 有什么办法可以解决此问题. 更新 证书算法不在密码套件中.遵循以下文件添加密码套件并现在解决了问题. 解决方案 不幸的是,您还无法解决此问题. .NET框架只需将基
0 2024-04-13
编程技术问答社区
未找到System.Net.SecurityProtocolType.Tls12定义
我正在尝试将以下代码行添加到网站项目中的global.asax文件. System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; VS2012 Intellisense表明TLS12定义存在.但是构建是说该定义不存在(请参见屏幕截图). 我已经尝试在项目的bin文件夹中添加system.net.dll,但是构建仍然失败.知道我如何能够解决这个问题? 解决方案 SecurityProtocolType.tls11和SecurityProtocoColtype.tls12仅在框架4.0上缺少枚举值. SecurityProtocolType数值: SystemDefault(0) SSL3(48-0x30) TLS(192-0XC0) TLS11(768-0x300)框架上缺少4.0 TLS12(3072-0XC00)框架4.0 缺少
0 2024-04-12
编程技术问答社区
如何在.Net 3.5框架中实现安全协议TLS 1.2
PayPal更新了他们的响应,我需要将安全协议TLS TLS更新为我现有的.NET 3.5框架上的现有应用程序中的v1.2. 在现有代码中更新此过程所需的更改,我无法将应用程序更新为较新的框架. 解决方案 我正在使用.NET 3.5.30729.4926的VS 2008.我要做的就是: 添加导入: Imports System.Security.Authentication Imports System.Net 将其添加到我的代码(C#): public const SslProtocols _Tls12 = (SslProtocols)0x00000C00; public const SecurityProtocolType Tls12 = (SecurityProtocolType)_Tls12; ServicePointManager.SecurityProtocol = Tls12; vb.net版本: Const _Tls12 As Ss
0 2024-04-11
编程技术问答社区
在没有明确的ServicePointManager.SecurityProtocol调用的情况下,.NET 4.7中无法协商TLS 1.2
我需要升级.NET应用程序,以支持仅支持TLS 1.2的网站上对API的呼叫.根据我阅读的内容,如果应用程序针对4.6或更高,则默认情况下将使用TLS 1.2. 要测试我创建了一个针对4.7的Windows表单应用程序.不幸的是,当我没有明确设置ServicePointManager.SecurityProtocol时,它会出错.这是代码: HttpClient _client = new HttpClient(); var msg = new StringBuilder(); // If I uncomment the next line it works, but fails even with 4.7 // ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; var httpWebRequest = (HttpWebRequest)WebRequest.Create("https:/
0 2024-04-11
编程技术问答社区
是否可以在.NET 4.0框架上使用TLS1.2发送HttpWebRequest?
我的应用程序连接到Experian服务器,Experian将很快停止支持TLS 1.0和TLS 1.1.使用HTTP的所有连接必须使用TLS版本1.2. 我想对该问题进行一些研究,并在.NET 4.0框架上使用TLS 1.2参见发送HttpWebRequest 如果没有,我可能需要在.NET 4.5上创建webservice并调用其方法,如果这样做,我不必任何东西. 有人已经面对这个问题了吗? 解决方案 是的,它支持它,但您必须在ServicePointManager上明确设置TLS版本.在拨打Experian之前,只需在同一应用域(在同一应用域中)运行此代码: System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 更新 请参阅 @iignatov的答案您必须为框架v4.0做什么.我的代码可用于4.5+ 其他解决方案 我必
0 2024-04-11
编程技术问答社区
如何在Windows 10中启用TLS 1.3
如何在Windows 10中启用TLS 1.3 解决方案 Windows 10和Windows 10 Server版本1903( 2019年5月Update )上的本机Schannel实现,而较新的支持TLS 1.3. 这是您可以使用 client 的注册表启用它的方式: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 这是您可以使用注册表的 server : 启用它. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\Cur
0 2024-04-11
编程技术问答社区
更新.NET网络服务以使用TLS 1.2
我需要使用TLS 1.2从我的.NET Web服务连接到将强制TLS 1.2的另一个.我找到了一个说.NET 4.6使用TLS 1.2的资源,默认情况下,这听起来像是最简单的解决方案.我更新了服务器上的.NET框架并重新启动.在IIS中,我尝试使用.NET 4.6进行应用程序池,但是4.0是唯一的选择.然后,我发现了一些说的话仍然说4.0,因为4.6是.NET 4.0的"适当的"更新.所以我以为也许我已经完成了.但是,在我出于无关原因的错误页面上,它说Microsoft .NET Framework Version:4.0.30319,因此看来我没有成功升级.关于如何确保我的应用程序池使用.NET 4.6或更一般而言如何启用TLS 1.2? 的任何指针 解决方案 实际上,我们只是将.NET Web服务升级到4.6,以允许TLS 1.2. Artem在说什么是我们所做的第一步.我们将Web服务的框架重新编译为4.6,并尝试更改注册表密钥以启用TLS 1.2,尽管这不起作用:连接
0 2024-04-10
编程技术问答社区
无法获得SSL/TLS的客户端证书
我将使用OpenSSL尝试使用相互认证的TLS. 但是,如下面的输出结果所示,客户端可以接收服务器证书并输出它,但是服务器尚未收到客户端证书 我的工作细节如下. 服务器和客户端证书生成(无需通过CA签名,只是自我签名) (1)生成服务器密钥和证书. $ openssl genrsa -des3 -out server.key 2048 $ openssl req -new -key server.key -out server.csr $ cp server.key server.key.origin $ openssl rsa -in server.key.origin -out server.key $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt (2)生成客户端密钥和证书. $ openssl genrsa -d
0 2024-04-09
编程技术问答社区
从BCRYPT_SECRET_HANDLE导出共享秘密为BYTE数组
我正在使用Crypto Next Generation API(CNG)实施ECDHE.我成功地生成了公共和私钥.对于预共享密钥,我使用 如何从bcrypt_secret_handle中导出预共享键作为字节数组? 解决方案 从Windows 10开始,您可以使用BCRYPT_KDF_RAW_SECRET调用BCryptDeriveKey(). 由此产生的关键数据是原始秘密. 注意1:bcrypt.h表示这种格式适用于" winblue",如果我正确理解,那将是Windows 8.1 .但是,这在Windows 10上起作用.) Note2:我发现使用此KDF类型返回的数据是Little-endian(BCRypt中的其他所有内容都是大型 - 居民).因此,要在本来大型世界中使用该值,您需要绑定数据. 其他解决方案 我需要做以下操作,这是我的代码中的摘录,该代码执行关键项目,您需要在此细分市场之前导入私钥和公共键 DWORD bCryptStatus
0 2024-04-08
编程技术问答社区
Openssl: 在SSL_CTX_load_verify_locations API中使用CApath参数时,证书验证失败
我正在尝试建立与服务器计算机的TLS连接.我已经使用openssl cli命令创建了root ca证书和服务器证书.我创建的服务器证书具有与其IP地址相同的通用名称.根CA证书的通用名称是服务器的FQDN. 我正在使用OpenSSL库API来建立与服务器的连接. 我正在使用API​​ int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath) 用于设置CA文件查找路径. 当我使用Cafile参数指定CA文件的路径时,一切正常,而Capath参数为null. 但是,如果我使用capath参数指定包含CA文件的目录的路径,而将Cafile参数作为null,则由于证书验证错误而导致连接失败. 当我使用Wireshark捕获数据包时,我发现我的客户端代码正在从服务器中发送"未知CA"的TLS响应"未知CA".我使用了在成功连接中使用的相同的CA证
0 2024-04-08
编程技术问答社区
openJdk升级到8u292是否会破坏我的aosp构建系统?
软件环境: Ubuntu 20.04 LTS服务器; Android AOSP 8.0; OpenJDK 8; 昨天我效果很好,我将OpenJDK从8U282升级到8U292.现在破损的建筑物记录说: Ensuring Jack server is installed and started FAILED: setup-jack-server /bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/ja
2 2024-04-04
编程技术问答社区
在appengine开发服务器SDK上强制使用TLS 1.2
这与这个问题相似:>在Java的Appengine本地开发服务器上强制TLS> 1.0 除了答案不起作用,因为它假定静态SDK位置(?). 我有一个Google App Engine应用程序,该应用程序使用第三方支付库(BrainTree),该应用程序使用TLSV1.2通过HTTPS进行通信.但是,每当Braintree库打电话给Braintree沙盒环境时,由此产生的urlfetch总是会出现以下错误: Caused by: javax.net.ssl.SSLHandshakeException: Could not verify SSL certificate for URL: https://api.sandbox.braintreegateway.com:443/merchants/**********/client_token at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertAp
0 2024-04-03
编程技术问答社区
"请求被中止了。无法创建SSL/TLS安全通道 "错误,在Braintree
在我本地的PC Braintree中显示错误"请求已中止:执行时无法创建SSL/TLS安全频道": var clientToken = gateway.ClientToken.generate(); 我正在使用" braintree-2.33.0.dll",而我的目标.NET版本为4.5.1. 我启用了TLS 1.2. 三天前工作得很好.但是突然开始显示错误.许多人面临同样的错误,然后大部分都改变了 SecurityProtocol .我找不到从Braintree改变它的方法.有什么方法可以更改 ServicePointManager.SecurityProtocol braintree?还是我缺少或需要做的其他任何事情? 提前致谢. 解决方案 全面披露:我在Braintree工作.如果您还有任何其他疑问,请随时与支持. 您需要更新 .net braintree sdk " https://github.com/paypal/tls-updat
2 2024-04-03
编程技术问答社区
使用Java 6和BouncyCastle在Jboss 5.1.0 GA上的TLSv1.2
我在Java 6上运行的JBOSS服务器和HTTPS连接器面临问题. 我想仅使用TLSV1.2制作服务器,然后使用Cipher Suites" TLS_ECDHE_ECDSA_WITH_AES_AES_AES_128_GCM_SHA256,TLS_ECDHE_ECDHE_ECDHE_ECDHE_WITH_WITH_AES_AES_AES_256_GCM_SHA384 我知道Java 6不支持TLSV1.2,但我将弹力城堡JCE和JSSE提供商添加到JDK( https://www.bouncycastle.org/latest_releases.html ): 添加了Jars Files( bcprov-jdk15on-159.jar 和 bctls-jdk15on-159.jar )在 path_to_jdk/jre/lib/ext 文件夹 编辑文件 path_to_jdk/jre/lib/lib/security/java.security 添加行: securi
0 2024-04-03
编程技术问答社区
在java 1.4中使用TLSV1.2时获得无此算法的异常。
我正在尝试达到支持TLSV1.2的Web服务.我正在使用Java 1.4.它不支持TLSV1.2. 现在有人告诉我,卑诗省可以解决我的问题. 尽管它可以与Sslengine一起使用,以某种方式下降? 卑诗省是否可以吗? 我该怎么做才能完成工作SSLEngine(用于tlsv1 非阻止IO场景)没有对DH的质量限制如此低的限制. 我尝试的是: Security.addProvider(new BouncyCastleProvider()); 这似乎没有解决问题. 所以而不是 SSLContext.getInstance("TLSv1"); //which works alas only little DH keys. 我尝试调用以下内容: SSLContext.getInstance("TLSv1","BC"); SSLContext.getInstance("TLS","BC"); SSLContext.getInstance
0 2024-04-03
编程技术问答社区
Java 1.6 + BouncyCastle + TLS1.2 (handshake_failure(40))
就我而言,我有Java 1.6,并且要连接到仅支持TLS1.2的远程服务器.服务器url is: https://blagajne-test.fu.gov.gov.gov.si:9002和证书公钥在这里:我没有可能升级Java,因为是Oracle数据库11G(11.4)的一部分. 我尝试在使用Bouncycastel库中写一个简单的程序,但出错:线程中的异常" Main" org.bouncycastle.crypto.tls.TlsFatalAlertReceived: handshake_failure(40) at org.bouncycastle.crypto.tls.TlsProtocol.handleAlertMessage(Unknown Source) 我遵循的步骤是: 1.)已下载了test-tls.cer,并将密钥导入了jssacerts和cacerts. 2.)在Java中完成了此示例: import java.io.IOExcep
2 2024-04-03
编程技术问答社区