解决局域网内开发https请求的证书问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决局域网内开发https请求的证书问题相关的知识,希望对你有一定的参考价值。

参考技术A

最近做一个项目,局域网内开发一台华为机器,但是机器上部署了nginx负载均衡,众所周知Nginx部署完成以后会强制 https 。

欧拉机器上的证书是华为域名的证书,由于我们使用局域网,局域网内的地址是 192 开头,此证书在局域网域名内失效,因而通过 https 方式访问时会出现风险提示。

在这种情况下,解决 SSL Error 的方法一般有两个

或者依照请求方式的不同

结果呢?不报错了,直接返回 404 ,啊,被拒绝了!!!

Nginx真是个倔强的服务哈哈哈

发现已有大佬给出相关的参考

自己签发一个SSL证书,要求包含内网主机域名即可。
需要如下几步骤:

1.安装mkcert

这两个证书文件的输出的目录一般是 /Users/[用户名]

请注意以上文件最好都填绝对路径

例如:

会让你设置密码

得到文件:

导入局域网的服务器就行了。

java的https请求解决证书问题

package sqr.srchSpider.utils;

import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.X509TrustManager;

public class TrustSSL {
    public static void trustEveryone() {
        try {
            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            });

            SSLContext context = SSLContext.getInstance("TLS");
            context.init(null, new X509TrustManager[] { new X509TrustManager() {
                public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                }

                public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                }

                public X509Certificate[] getAcceptedIssuers() {
                    return new X509Certificate[0];
                }
            } }, new SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

TrustSSL.trustEveryone();
Document doc = Jsoup.connect(url).data(key0,key).get();

 

以上是关于解决局域网内开发https请求的证书问题的主要内容,如果未能解决你的问题,请参考以下文章

jdk生成https证书

IOS https抓包及10.3.3版本证书不生效问题解决

FIDO U2F应用与开发-开发支持U2F的站点

局域网内搭建一个服务器,可以使用 https 吗

Android开发 - Retrofit 2 使用自签名的HTTPS证书进行API请求

JDK版本不同引发的https请求证书问题