相关疑难解决方法(0)

如何解析SSL证书服务器名称/我可以使用keytool添加备用名称吗?

为清楚起见,这些可能被表述为单独的问题,但它们都与同一问题有关.

SSL证书服务器名称是如何解析的?

为什么浏览器似乎使用证书的CN字段,但Java的机制似乎只关注"主题替代名称"?

是否可以使用keytool为SSL证书添加备用名称?如果没有,是使用openSSL而不是一个好的选择?

只是一点背景:我需要让主服务器使用HTTPS与多个服务器通信.显然,我们不想为每个服务器购买SSL证书(可能有很多),所以我想使用自签名证书(我一直使用keytool来生成它们).在操作系统中添加证书后,浏览器(IE和Chrome)很乐意接受该连接为可信任的.但是,即使将证书添加到Java的cacerts之后,Java仍然不会将该连接接受为受信任,并抛出以下异常:

引起:java.security.cert.CertificateException:在sun.security.util.HostnameChecker.match(HostnameChecker.java:75)的sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:142)中没有主题备用名称. at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(X509T rustManagerImpl.java:264)at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:250)at com. sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien tHandshaker.java:1185)... 14更多

我发现我可以让Java信任实现我自己的HostNameVerifier的证书,我从这里复制了:com.sun.jbi.internal.security.https.DefaultHostnameVerifier只是为了测试(顺便说一句,主机名作为参数传递给HostnameVerifier是正确的,所以我认为应该已经接受了).

我一直使用证书字段CN作为主机名(通常是IP地址).

任何人都可以告诉我,如果我做错了什么,并指出我正确的方向?

java security ssl

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

SSL证书是否绑定到服务器的IP地址?

我们在两个不同的物理办公地点有两个不同的ldap提供商.

当我将笔记本电脑连接到一个位置并且我从端口'(在Websphere 6.1中)检索以导入ldap提供程序的ssl证书时,我可以在没有问题的情况下对相应的ldap进行身份验证.如果我将笔记本电脑带到另一个办公室(默认情况下使用其他ldap提供商)并且我插入笔记本电脑,我的笔记本电脑上的WAS将无法启动,因为它显示"找不到可靠的ssl证书".

如果我再次从端口'检索并重新导入证书,那么它再次起作用.

请注意,我的WAS总是尝试连接到一个ldap,它对另一个没有用.

如果我回到另一个办公室,我会得到同样的错误,直到我从该位置重新导入.ldap连接点是ldap.something.com:636,并且在具有相同FQDN的两个位置都可以ping.

但是当它被ping时,它会解析为每个办公地点的不同IP地址.为什么我会看到这种行为?

SSL Certs是否以某种方式绑定到特定的IP地址?

如果是,那么我需要为每个办公地点维护一套不同的证书,对吧?

请注意,我检查过无法调整dns服务器以将主机名解析为相同的IP地址.

有人能提供一些见解吗?

websphere ssl-certificate

64
推荐指数
3
解决办法
10万
查看次数

LetsEncrypt IP地址上的SSL

如何在公共IP地址上安装LetsEncrypt SSL?

我在域上尝试过,它运行正常.但无法在IP地址上安装它.

ssl ssl-certificate

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

使用IP地址访问https站点

我想知道为什么如果我尝试使用IP地址而不是域名访问网站,我会收到证书错误.比方说,例如nslookupgoogle.com173.194.43.96,所以我试图浏览https://173.194.43.96,我得到了证书错误,指出此网站出具的安全证书是为不同的网站的地址发出.为什么会这样?

ssl

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

是否可以获取 ip:port 而不是域名的 ssl 证书?

我知道我们可以保护“ https://www.abcdef.com ”这样的域,并让 URL 显示为绿色,表明它是安全的。

但是否可以获得像“ https://10.111.121.240:3000 ”这样的 url 的有效 ssl 证书。如果是的话怎么办?

目前,我正在使用https://10.111.121.240:3000,但 url 中的 https 被删除并显示为不安全。所以我无法在 ios/android 模拟器/模拟器中获取数据。

ssl https android-emulator ios-simulator

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

Android SSL 证书固定与改造

我想在 android 应用程序中进行证书固定。我对理解这一点感到非常沮丧。请帮我

我拥有的:-

  1. .cert 类型证书文件。
  2. .key 类型的密钥文件,其中存储了私钥。

我没有将实施此证书的域名。我只有IP地址。我在我的项目中使用 okHttp 和改造。我在堆栈溢出中看到了许多示例来实现这一点。

但我没有得到一些东西:- 1. 如果我没有域名,是否可以将 ssl 实现为 IP 地址?2. pin字段包含什么,我没有任何私钥。我在哪里可以找到私钥(sha256/XXXXXXXXXX)?

Retrofit provideRetrofit(OkHttpClient okHttpClient, Gson gson) {
    CertificatePinner certPinner = new CertificatePinner.Builder()
            .add("patternField","pins")
            .build();

       OkHttpClient okHttpClientForPinning = new OkHttpClient.Builder()
            .certificatePinner(certPinner)
            .build();
    OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
    try {
       clientBuilder.sslSocketFactory(getSSLConfig(context).getSocketFactory());
    }
    catch (Exception e) {
        e.printStackTrace();
    }

    clientBuilder.hostnameVerifier(new HostnameVerifier() {
        @Override
        public boolean verify(String hostname, SSLSession session) {
            boolean value = true;
            //TODO:Some logic to verify your host and set value
            return …
Run Code Online (Sandbox Code Playgroud)

ssl android ssl-certificate retrofit2 certificate-pinning

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