Tag: ssl

SMTP服务器需要安全连接或客户端未经过身份validation – 仍然无法正常工作

我收到了上述错误。 我看过在线解决方案,我似乎已经做了所有必要但我仍然得到它。 我已经包含了Enablessl = true; 交付方式是网络,我提供了凭据。 我调试了它,用户名和密码似乎是正确的。 using System; using System.Net; using System.Net.Mail; using System.Windows.Forms; namespace SendMail { public partial class MainWindow : Form { #region Private variables private MailMessage _message = new MailMessage(); private EmailSender sender = EmailSender.GetInstance(); private SmtpClient _smtpClient = new SmtpClient(); #endregion public MainWindow() { InitializeComponent(); } private void PrepareMailMessage() { […]

在x509certificate2中清空PrivateKey

我已使用私钥在本地计算机商店(win7)上安装了证书。 在c#代码中我这样做: X509Certificate2 cert = null; var store = new X509Store(storeName, storeLocation); store.Open(OpenFlags.ReadOnly); try { var result = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; cert = result.Count > 0 ? result[0] : null; } finally { store.Close(); } return cert; 在cert变量中,我有我的证书但是它有问题:HasPrivateKey是真的但是PrivateKey没有任何对象。 如果我使用我的Web应用程序的C#代码中的REST请求发送它我有错误: AcquireCredentialsHandle() failed with […]

我的自定义SSLvalidation逻辑如何安全地处理例外的RemoteCertificateNameMismatch?

我尝试将文件上传到我的域https://vault.veodin.com/ ,该文件位于webfaction.com 当您打开此URL时,浏览器会警告您名称不匹配,因为SSL证书是针对webfaction.com而不是针对veodin.com发布的 因此,当我尝试使用.Net WebClient将文件上载到此域时,会出现sslPolicyError System.Net.Security.SslPolicyErrors.RemoteCertificateNameMismatch。 出于我的目的,足以确保上传目标托管在* .webfaction.com上。 信任certificate.subject是否安全? 背景: 更新:我使用自定义CertificateValidationCallback来validation证书主题和证书颁发者是否符合我的预期。 ServicePointManager.ServerCertificateValidationCallback = MyCertificatePolicy.CertificateValidationCallBack; … public class MyCertificatePolicy { public static bool CertificateValidationCallBack( object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { // If the certificate is a valid, signed certificate, return true. if (sslPolicyErrors == System.Net.Security.SslPolicyErrors.None) { return true; } //if there is a […]

从服务器xamarin.android收到的证书无效

所以这让我疯狂了一天。 我正在尝试与xamarin.android上的REST API交谈但由于某种原因我收到此错误: InnerException {Mono.Security.Protocol.Tls.TlsException:从服务器收到的证书无效。 错误代码:0xoffffffff.Handshake.Client.TlsServerCertificate.RemoteValidation(Mono.Security.Protocol.Tls.ClientContext上下文,AlertDescription描述)[0x00000]中的错误代码:0xffffffff800b010a:0:Mono.Security.Protocol.Tls。 Handshake.Client.TlsServerCertificate.validateCertificates(Mono.Security.X509.X509CertificateCollection证书)[0x00000] in:0 at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1()[0x00000] in:0 at Mono。 Security.Protocol.Tls.Handshake.HandshakeMessage.Process()[0x00000] in:0 at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage(Mono.Security.Protocol.Tls.TlsStream handMsg)[0x00000] in:0 at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback(IAsyncResult asyncResult)[0x00000] in:0} Mono.Security.Protocol.Tls.TlsException 经过一些研究后,我发现这与我正在谈论的服务器丢失的证书有关(如果我错了,请纠正我)。 所以我将SSL证书添加到Mac上的钥匙串中。 我还运行了Mozilla命令来安装默认证书。 不幸的是,这仍然无效。 在Windows上,与API的连接就像魅力一样。 从我读到的这是因为Windows有自己的CA商店和一些默认证书。

我们可以向ServicePointManager.SecurityProtocol添加四个协议吗?

我想支持从ssl3到tls 1.2的所有安全协议。 但是在网上搜索时,我发现代码为 `ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11;` 或者作为 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 但是,我想支持所有协议。 那么,写作是不对的 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 当我编写上面的代码时,我没有给我任何编译错误。所以,这会导致任何问题吗?

带有SslStream的XmlTextReader – 从流中读取多个xml

我有一个SslStream,我从中收到自发的XML消息。 我想使用XmlTextReader处理来自该流的XML消息。 不幸的是,它允许我只读取第一个XML。 当我收到第一个xml后调用Read时,该方法抛出exception:XML文档中的多个根(“Xml_MultipleRoots”)。 我相信这是一个问题,流一个接一个地提供xml消息,但XmlTextReader只能处理一个。 如何解决这个问题?

当您知道无效证书是安全的时,测试X509Certificate.Thumbprint属性是否安全?

我正在尝试使用SmtpClient.Send以编程方式发送电子邮件。 我正在尝试发送电子邮件时收到AuthenticationException 。 这是因为证书validation程序失败。 我知道证书是正确的,但我也明白,信任所有证书并不安全,就像这样做的建议: ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { return true; }; 所以我想知道测试Thumbprint是否足够安全已知的有效证书指纹,如下所示: ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { if (sslPolicyErrors == SslPolicyErrors.None) return true; else if (certificate.GetCertHashString().Equals(“B1248012B10248012B”)) return true; return false; };

PayPal API,HttpWebRequest抛出SSL WebException

我正在尝试获取PayPal访问令牌,如下所示: https : //developer.paypal.com/docs/integration/direct/make-your-first-call/#get-an-access-token 我的C#代码如下所示: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(“https://api.sandbox.paypal.com/v1/oauth2/token”); request.Headers[“Authorization”] = “Basic ” + Convert.ToBase64String(Encoding.Default.GetBytes(clientId + “:” + clientSecret)); request.Accept = “application/json”; request.Headers.Add(“Accept-Language”, “en_US”); request.Method = “POST”; request.ContentType = “application/x-www-form-urlencoded”; request.Timeout = 10000; byte[] postBytes = Encoding.ASCII.GetBytes(“grant_type=client_credentials”); request.ContentLength = postBytes.Length; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; Stream postStream = request.GetRequestStream(); // […]

覆盖windows8中的证书validation

我试图在Windows8消费者预览的ssl套接字中使用自签名证书。 我得到这个例外: 例外:System.Runtime.InteropServices.COMException(0x800B0109):已处理证书链,但终止于信任提供程序不信任的根证书。 (来自HRESULT的例外:0x800B0109。 是否可以覆盖ssl证书的validation? 类似于remotecertificatevalidationcallback的东西,在windows8上似乎无法访问。 非常感谢提前。

没有TLS 1.0,WCF .NET 4.0无法运行

在我工作的公司中,我们有一个产品在.NET Framework 4.0中使用SSL使用WCF over net.tcp。 在特定客户端中,出于安全原因,存在禁用SSL 2,SSL 3和TLS 1的要求。问题是没有TLS 1.0,通信不起作用。 有人可以告诉我为什么? 我使用IISCrypto来禁用上述协议。 它在本讨论中附带了示例代码。 重现场景的步骤。 禁用协议,如下图所示 重新启动计算机 构建附加的解决方案 执行Server.exe 执行Client.exe 它将显示以下错误:调用者未通过该服务进行身份validation