相关疑难解决方法(0)

HttpWebRequest是否自动处理证书验证?

我正在使用HttpWebRequest对象通过HTTP POST访问Web服务。部分要求是我:

  1. 验证证书中的URL与我要发布到的URL匹配
  2. 验证证书有效且受信任
  3. 验证证书尚未过期

HttpWebRequest是否自动为我处理?我假设如果出现这些情况中的任何一个,我将得到标准的“无法为SSL / TLS安全通道建立信任关系”异常。

.net c# vb.net security certificate

5
推荐指数
1
解决办法
6238
查看次数

如何使用Ssl Stream获取/存储客户端证书?

我使用MSDN sslstream文章创建了TCP客户端/服务器应用程序.客户端和服务器都正常工作.我还将ssl证书附加到客户端和服务器.

当我运行客户端和服务器程序时,服务器始终定义"RemoteCertificate = null".我想读取客户端证书并将该证书复制/存储到存储.

我还有使用X509Store Class 存储证书的演示程序.现在唯一的问题是获得客户端证书.

这是服务器的代码:

using System;
using System.Collections;
using System.Net;
using System.Net.Sockets;
using System.Net.Security;
using System.Security.Authentication;
using System.Text;
using System.Security.Cryptography.X509Certificates;
using System.IO;

namespace Examples.System.Net
{
    public sealed class SslTcpServer
    {
        static X509Certificate serverCertificate = null;

        public static void RunServer(string certificate)
        {
            serverCertificate = X509Certificate.CreateFromCertFile(certificate);

            TcpListener listener = new TcpListener(IPAddress.Any, 8080);
            listener.Start();
            while (true)
            {
                Console.WriteLine("Waiting for a client to connect...");

                TcpClient client = listener.AcceptTcpClient();
                ProcessClient(client);
            }
        }
        static void ProcessClient(TcpClient client)
        { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net security ssl

5
推荐指数
1
解决办法
4418
查看次数

如何使用java获取安全网页的公钥

我需要通过java以编程方式获取安全网站的公钥.我看了这个,这个,这个和这个和其他的方面.但我还没有找到通过java获得它的解决方案.

编辑:::

根据Zielu的回答,我写了以下程序:

import java.security.PublicKey;
import java.security.cert.Certificate;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;

public class RetrievePublicKey {

    private static PublicKey getKey(String hostname, int port) throws Exception {
        SSLSocketFactory factory = HttpsURLConnection.getDefaultSSLSocketFactory();        
        SSLSocket socket = (SSLSocket) factory.createSocket(hostname, port);
        socket.startHandshake();
        Certificate[] certs = socket.getSession().getPeerCertificates();
        Certificate cert = certs[0];
        PublicKey key = cert.getPublicKey();
        System.out.println(key);
        return key;
    }
    public static void main(String[] args) throws Exception {
        System.out.println(getKey("bctcl-parasuram.bctchn.local", 8443));
    }

}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我得到以下异常:

Exception in thread "main" javax.net.ssl.SSLHandshakeException: …
Run Code Online (Sandbox Code Playgroud)

java ssl-certificate

2
推荐指数
1
解决办法
3811
查看次数

标签 统计

c# ×2

security ×2

.net ×1

asp.net ×1

certificate ×1

java ×1

ssl ×1

ssl-certificate ×1

vb.net ×1