tomcat配置客户端ssl证书 10C

我这里远程调用https接口,通过mian方法直接调用可以调通;通过调用webservice接口再调用远程https接口,返回

400 No required SSL certificate was sent

400 Bad Request


No required SSL certificate was sent

WEBSERVER


客户端证书一般不都是java代码加载吗?代码如下:
public static HttpClient getInstance() throws Exception {
HttpClient client = new DefaultHttpClient();
String path = Thread.currentThread().getContextClassLoader().getResource(".").getPath();
System.out.println(path);
SSLContext ctx = SSLContext.getInstance("TLS");
KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(new FileInputStream(path+Dom4J.getDocumentValue("keyStore")), Dom4J.getDocumentValue("keyPassword").toCharArray());
System.out.println(path+Dom4J.getDocumentValue("keyStore"));
KeyManagerFactory kmf = KeyManagerFactory.getInstance("sunx509");
kmf.init(ks, Dom4J.getDocumentValue("keyPassword").toCharArray());
KeyStore ts = KeyStore.getInstance("jks");
ts.load(new FileInputStream(path+Dom4J.getDocumentValue("trustStore")), Dom4J.getDocumentValue("trustPassword").toCharArray());
System.out.println(path+Dom4J.getDocumentValue("trustStore"));
TrustManagerFactory tmf = TrustManagerFactory.getInstance("sunx509");
tmf.init(ts);
ctx.init(kmf.getKeyManagers(), new TrustManager[] { tm }, null);
SSLSocketFactory ssf = new SSLSocketFactory(ctx);
ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
ClientConnectionManager ccm = client.getConnectionManager();
SchemeRegistry sr = ccm.getSchemeRegistry();
sr.register(new Scheme("https", ssf, 8443));
client = new DefaultHttpClient(ccm, client.getParams());
return client;
}

3个回答

 import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.conn.ssl.SSLSocketFactory;

public class SSLSocketFactoryEx extends SSLSocketFactory {

    SSLContext sslContext = SSLContext.getInstance("TLS");

    public SSLSocketFactoryEx(KeyStore truststore)

    throws NoSuchAlgorithmException, KeyManagementException,

    KeyStoreException, UnrecoverableKeyException {

        super(truststore);

        TrustManager tm = new X509TrustManager() {

            @Override
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {

                return null;

            }

            @Override
            public void checkClientTrusted(

            java.security.cert.X509Certificate[] chain, String authType)

            throws java.security.cert.CertificateException {

            }

            @Override
            public void checkServerTrusted(

            java.security.cert.X509Certificate[] chain, String authType)

            throws java.security.cert.CertificateException {

            }

        };

        sslContext.init(null, new TrustManager[] { tm }, null);

    }

    @Override
    public Socket createSocket(Socket socket, String host, int port,

    boolean autoClose) throws IOException, UnknownHostException {

        return sslContext.getSocketFactory().createSocket(socket, host, port,

        autoClose);

    }

    @Override
    public Socket createSocket() throws IOException {

        return sslContext.getSocketFactory().createSocket();

    }
}

import java.security.KeyStore;

import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;

public class HttpClientHelper {
    private static HttpClient httpClient;

    private HttpClientHelper() {

    }

    public static synchronized HttpClient getHttpClient() {

        if (null == httpClient) {

            // 初始化工作

            try {

                KeyStore trustStore = KeyStore.getInstance(KeyStore

                .getDefaultType());

                trustStore.load(null, null);

                SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);

                sf
                        .setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); //允许所有主机的验证

                HttpParams params = new BasicHttpParams();

                HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

                HttpProtocolParams.setContentCharset(params,

                HTTP.DEFAULT_CONTENT_CHARSET);

                HttpProtocolParams.setUseExpectContinue(params, true);

                // 设置连接管理器的超时

                ConnManagerParams.setTimeout(params, 10000);

                // 设置连接超时

                HttpConnectionParams.setConnectionTimeout(params, 10000);

                // 设置socket超时

                HttpConnectionParams.setSoTimeout(params, 10000);

                // 设置http https支持

                SchemeRegistry schReg = new SchemeRegistry();

                schReg.register(new Scheme("http", PlainSocketFactory

                .getSocketFactory(), 80));

                schReg.register(new Scheme("https", sf, 443));

                ClientConnectionManager conManager = new ThreadSafeClientConnManager(

                params, schReg);

                httpClient = new DefaultHttpClient(conManager, params);

            } catch (Exception e) {

                e.printStackTrace();

                return new DefaultHttpClient();

            }

        }

        return httpClient;

    }
}

试试

qq_32697113
qq_32697113 webservice接口是个普通的http接口,接口里面又调用远程https服务,就调不通了。
大约一年之前 回复
xcgh
xcgh https可以调用,但是从http跳转https是不行的,所以你的webservice需要证书
大约一年之前 回复
qq_32697113
qq_32697113 感谢下,我已经实现直接调用https接口了。只是我把调用方法封装成webservice接口,放入tomcat后;再通过调用webservice接口,就调不通了
大约一年之前 回复
qq_32697113
qq_32697113 不好用呀
大约一年之前 回复
qq_32697113
qq_32697113 这个还是tomcat作为服务端的配置呀,我这里其实是作为了客户端,调用远程https接口的
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Tomcat配置https的SSL证书
这是申请证书的步骤 1. 获取证书列表 2. 获取解密私钥 生成的内容另存为文件 3. 创建pkcs12文件 Enter Private Key:就是上面第二步获取的解密私钥。头命名是:BEGIN RSA PRIVATE KEY Enter Certificate:第一步证书列表 ApacheServer.zip里面有一个.crt文件 Provide a
腾讯云Tomcat配置SSL证书
每当我们连接互联网,访问一个网站浏览网页时,在浏览器的地址栏中,都会出现以HTTP或者HTTPS开头的IP网址。其中,HTTP协议是目前互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。 然而HTTP协议是以明文方式发送通讯内容的,不提供任何方式的数据加密,这就导致了该方式的不安全性。由此,能够提供数据传输安全连线的HTTPS(超文本加密传输协议)便衍生出来,成为今天主流网
阿里云SSL证书tomcat配置
转自:https://www.cnblogs.com/cxyc/p/10593177.html 1. SSL证书申请 登录阿里云控制台,查看购买域名中有SSL证书的申请,ssl证书申请中有单域名的申请,配置要申请的域名信息(注意:一个域名下,一次只能添加一个证书,最多申请3个免费证书用于测试),点击确定后,查看审核进度,审核失败点击修改相关信息,将地址、开发人员联系电话填写完成,然后再次提...
tomcat配置ssl生成证书
[size=small]1,生成数字证书 ./keytool -genkey -alias examplecas -keypass changeit -keyalg RSA -keystore server.keystore 2,导出数字证书 ./keytool -export -alias examplecas -keypa...
tomcat配置ssl证书
tomcat配置ssl证书 1、首先生成证书 这里利用java自带的keytool工具生成 keytool -genkey -alias tomcat_mas_sms -keyalg RSA -keysize 2048 -keypass tomcat_mas_sms -validity 3650 -keystore /tmp/test....
Tomcat配置SSL的客户端认证
[color=red][b]证书保存在服务器端,用户通过浏览器访问时,需要将证书下载保存到本地,表示信任服务器站点。[/b][/color] 环境:tomcat-6.0.18、jdk1.6.0_18 [color=darkred]1. 生成密钥库[/color] [code="java"] keytool -genkeypair -v -ke...
一个Tomcat配置两个SSL证书
修改tomcat/conf/server.xml文件中的红色部分: <?xml version="1.0" encoding="UTF-8"?> <!--   Licensed to the Apache Software Foundation (ASF) under one or more   contributor license agreements.  See the ...
Tomcat配置ssl证书和根目录修改
有关于Tomcat配置ssl证书和TOMCAT的根目录修改。然后可以用https+域名直接访问工程。。。。。。。。。。。。。。。。。。。
为tomcat配置免费ssl证书
最近公司要做微信小程序项目,而小程序的请求域名需要加密才可以通过,现记录下整个配置流程,以便日后复用或他人借鉴。 1.什么是ssl证书 简而言之,ssl证书就是一种数据加密的方式,多用于在线支付类网站。 2.如何申请免费ssl证书 腾讯云、阿里云都提供免费ssl证书的申请通道,一般有效期为1年,过期后可再次申请,传送门:https://cloud.tencent.com/product/s...
服务器tomcat配置SSL证书(https)
1.因开发微信小程序,需要使用到https的域名,所以需要给服务器配置SSL证书。 证书可以到各大厂商申请,有免费的,有付费的,我在阿里云上申请免费的(Symantec 免费DV),申请过程就不介绍了,申请完下载证书文件,根据阿里云给出的SSL证书配置进行操作,它还出了配置的视频。。真是太完美了。视频地址:https://help.aliyun.com/video_list/54214.html
SSL客户端证书的问题
我用openssl tool 创建了一个CA,然后用这个CA去签发一个服务器证书和一个客户端证书,服务器证书是成功了,可是客户端证书有问题,我在IIS设置"要求使用客户端证书",然后用https访问页面时,弹出客户端证书选择框是空的,但是客户端证书在IE->内容->证书中是有的,根证书也安装到受信任的根证书下,请问这是什么原因啊??有点人说要是用windows的证书服务组件来生成证书就不会有这种问题,可是我觉得应该不是这个问题吧.微软不会这么变态吧,用IIS限制.rn
SSL 客户端证书
IIS 安装了服务器证书,然后IIS设置了 需要客户端证书。rnrnrn而后我申请了一个证书(不同的根),并且安装该证书到IIS服务器中, 同时添加了根证书。rnrn客户端浏览器也安装了证书。rnrn当我浏览网站的时候 还是说 网站需要客户端证书。 是不是客户端证书和 IIS证书 需要是同一个根证书所签发的才行啊?
weblogic客户端ssl证书
weblogic客户端ssl证书,服务器证书安装配置指南
OpenSSL简单命令及Tomcat配置SSL证书
查看支持的子命令: openssl ? SSL 密码组合列表: openssl ciphers 测试密码算法速度 测试所有算法速度: openssl speed 测试 RSA 速度: openssl speed rsa 测试 DES 速度: openssl speed des 加密文件: openssl enc -e -rc4 -in 1.key -out 1...
免费SSL证书申请以及Tomcat配置HTTPS
本文免费SSL证书申请来源腾讯云,地址:https://console.qcloud.com/ssl 第一步,申请证书,步骤不在此详述 第二步,证书申请提交后需要进行域名验证,本文采用文件验证方案,就是要在你的服务器上启动web服务,且能够访问到下图中的地址及内容 第三步,审核通过后方可下载证书文件ZIP包,解压后里面有Nginx、IIS、Tomcat等,本文使用的是Tomcat,所...
Tomcat配置Godaddy的ssl证书详细步骤
1.生成tomcat.keystore 密钥文件; keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore 然后会提示输入DNS 信息及密码: Enter keystore password:  设置一个用于保护你keystore文件的密码,例如123456 Re-enter new...
Tomcat配置 https SSL证书,超级简单和实用
提前:先生成key,cer,pfx文件。(前面博客已经写过了:https://blog.csdn.net/xp_zyl/article/details/81146536) 一、生成 jks 文件或者生成keystore文件(记得要在key,cer,pfx目录下) 生成keystore命令(推荐):keytool -genkeypair -alias "tomcat" -keyalg "RSA...
腾讯云申请免费 ssl 证书+tomcat配置https
1.申请免费的 SSL 证书申请证书连接:https://console.cloud.tencent.com/ssl提交之后,就等待验证,一般一个工作日把。下面是验证成功后,邮箱收到的邮件信息。2.下载 SSL 证书这是下载后解压出来的文件目录。3.我们用到的是 tomcat 服务器所以把 Tomcat 文件的 jks 文件上传到服务器上的 tomcat 目录下的 conf 里面。上传方法自己选择...
Tomcat配置SSL证书遇到的各种问题
今天决定把之前配置SSL证书遇到的各种问题记录下来 一,前往阿里云下载免费版SSL证书(具体可以百度) 二,参照下载时SSL证书配置进行配置(阿里云提供有Tomcat配置的视频) 视频连接:https://help.aliyun.com/video_detail/54217.html 1.配置Tomcat 没有按照视频来做,直接在Tomcat目录下新建cret文件夹
tomcat配置ssl后证书不受信任
我有个在tomcat5.5.20下的应用,由于业务需要使用https方式访问(原来是http)。rn按照网上搜索的方法,我用keytool生成了证书rn如下:rn%Java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA rn然后在server.xml里配置了connectorrn如下:rnrn然后通过rnhttps://localhost:8443/...(应用地址略)访问我的应用提示“此网站的安全证书有问题。 ”rn但是应用还是可以访问的,如何去掉这个提示呢?rn是我证书配置有问题还是需要用openssl生成ca认证的证书呢?
微信小程序ssl证书,Tomcat配置
微信小程序开发时,在微信公众平台必须配置服务器域名时,要求必须是以:https://开头,用于小程序开发工具中(请求服务器路径)。 用于:.app.js的api_url:路径(https://域名.com/tomcat端口号(80可以不写)/项目名/),项目名后添加D:\Tomcat 7.0\webapps\项目名,下的文件,例如小程序加载服务器,tomcat中的图片 服务器配置Tomcat配置,...
Keytool生成证书并在Tomcat配置SSL
基础软件环境说明 JDK: jdk-8u121-windows-x64 Tomcat:apache-tomcat-8.5.15 生成服务器秘钥文件 以命令行方式切换到目录%TOMCAT_HOME%/bin,在command命令行输入以下命令,创建一个keystore文件: keytool -genkey -alias webgis -keyalg RSA -keypass gispla
tomcat配置阿里云域名SSl认证JKS证书
( 1 ) 使用java jdk将PFX格式证书转换为JKS格式证书(windows环境注意在%JAVA_HOME%/jdk/bin目录下执行) keytool -importkeystore -srckeystore 1533096439647.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS 回车后...
tomcat配置SSL
rar中包含本人学习笔记以及成功的server.xml跟web.xml配置文件
怎么生成 ssl 客户端证书
本人的一个站点设置了SSL,并要求客户提供客户端证书.现在的问题是我不想让客户自己申请证书,而是由管理员生成证书后统一下发给合法的用户.rn请问:rn怎么生成 ssl 客户端证书,我是在win 2003 server IIS 环境下设置SSL的.
SSL客户端不验证证书
以前用C#写了个程序,连接SSL的服务器,其中涉及到证书验证。在C#中,提供了X509证书的验证回调,也就是说我们可以通过这个回调实现我们自己的证书验证过程。最近有把程序用Java重写的打算,就在网上找关于Java中SSL的资料,通过查看javax.net.ssl的相关文档,找到方法如下: public static void SslSocket() throws Exception {
笔记1:openssl+keytool证书生成,tomcat配置ssl双向证书
1.准备工作:    1)新建一个目录certificate_server(用于生成server证书)    在certificate_server目录下新建目录         mkdir -p demoCA/certs;        mkdir -p demoCA/newcerts;        touch demoCA/index.txt && echo "02" &gt...
tomcat配置证书
[size=medium][size=x-small][size=xx-large][size=medium] 1、利用java 生成一个.keystore文件 进入命令行(假设已经设定了环境变量) 执行 keytool -genkey -alias tomcat -keyalg RSA 结果如下 (1) C:\Users\Administrator>keytool ...
不同等级的SSL证书 SSL证书的作用
不同等级SSL证书的区别 DVSSL证书,又称域名验证型SSL证书。DVSSL证书是签发只验证域名所有权,快速颁发的SSL证书,安全级别较低。 OVSSL证书,又称机构验证型SSL证书。当前广泛应用的SSL证书,需要验证企业身份信息后颁发。OVSSL证书是当前最常见的证书类型,适用于行政、企业、科研、邮箱、论坛等各类大中型网站。 EVSSL证书,又称扩展验证型SSL证书。安全级别最高,验证审核最严...
阿里云SSL证书申请及SSL证书安装
前言 下面要介绍的是在阿里云申请或购买SSL证书,及SSL的证书安装的操作。关于SSL证书的介绍,之后再写一篇来解释。 由于每个人实际上关于web服务器的安装或配置有差异,所以导致证书的安装也会有一定的差异。 本文使用yum安装的httpd,apache版本: Apache/2.4.6 。与本文的环境相同的,可直接使用此文档。 SSL证书购买或申请 【1】免费证书购买 <1&...
SSL证书
本文借鉴以下文章: http://reallifejava.com/configuring-ssl-in-wildfly-8/http://www.360doc.com/content/12/0405/13/3200886_201082456.shtmlhttp://xeseo.blog.163.com/blog/static/5632431620130825428120/http://tom...
OV SSL证书和EV SSL证书的区别
SSL证书是保护网络安全的重要因素。今天向大家说的就是OV SSL证书和EV SSL证书,相信看完,会对这两个证书留下深刻的印象。OV组织验证型SSL证书提供了对个人或者是该机构的审核,可以准确知道对方的身份,安全性很高。它是企业组织类型的SSL证书,电子证书认证机构会审核证书申请人,为了验证企业身份和域名所有权,不仅仅透露一些信息给客户,而且客户也会知道身份,会加大了客户对该企业的信任度,提升了...
什么是SSL证书?SsL证书的好处
功能描述 统一管理 为客户提供一站式的证书购买、证书审批、证书上传/下载、证书吊销和证书删除的全生命周期管理。 证书签发 可以云上签发Symantec、GeoTrust、TrustAsia证书,简化证书部署。 一键部署 支持一键分发到InSLB、InCDN、InEWAF、网站高防这些浪潮云上使用到证书的产品中。 网站安全 InSSL可以帮助您实现网站HTTPS化,使网站可信,防劫持、防篡改、防监听...
ssl证书ssl证书的作用是什么
ssl证书是数字证书的一种,因为配置在服务器上,也称为SSL服务器证书。SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道。 ssl证书所建立的这条通道,信息在传输过程中可以避免被窃取或篡改。尤其是在一些付费网站中,保障密码的隐密性就显得尤为重要。 ssl证书安装之后 会在网址前显示一个绿色的小锁,也是防止钓鱼网站的重要标识。 ...
免费SSL证书 永久免费SSL证书
目前最好的免费ssl证书就是Let’s Encrypt。 Let’s Encrypt是由EFF、Mozilla、Cisco、Akamai、IdenTrust与密西根大学研究人员共同创立的,持续可靠的免费SSL证书,几乎兼容所有浏览器。 免费证书申请教程: 以centos7 下的nginx为例 sudo yum -y install yum-utils sudo yum-config-manager...
ssl证书
if [[ $i =~ ^[0-9]+$ ]] 1、[[ ]]是if语句判断正则表达式的固定格式 2、=~表示匹配 3、^[0-9]+$只看中间[0-9]+,意思是一个以上的0-9之间的数字,连起来就是任意大小的数字 https://zhidao.baidu.com/question/433044439967176764.html...
SSL与证书
OpenSSL是一种常用的ssl实现 相当强大与完善,但是偶尔也会出现一些漏洞。 包含的X.509 证书标准,定义在RFC5280。 X509编码格式 PEM -Privacy Enhanced Mail :BASE64编码 查看内容命令: openssl x509 -in certificate.pem -text -noout 内容格式: 文本方式打开后 以
ssl 证书
众所周知,ssl证书必须由权威机构颁发才具有保障性和权威性。如何具有权威性,一个显而易见的标准就是钱。。。域名级ssl证书上千元,一个全能型ssl证书数十万。而且不像域名,你注册了,二级域名随便你创建,通常ssl证书只有二三个域名可用,想增加子域名,可以,但是要加钱。所以咱们铁总用自己的根证书,咋滴,浏览器提示不安全,你还能不上去买票吗。但是企业和电商等哪有这么大魄力,看到你不安全,我就换个企业合作
TOMCAT配置免费SSL证书(https),共用443端口配置多域名多SSL证书
网上的各种教程都是在要么配多tomcat,要么tomcat里配多IP,这样就可以有多个443端口,导致我一度认为实在是没有办法配单tomcat单SSL证书了.但是我之前知道nginx可以配置多SSL证书,我就去查了一下,原来原理是打开SNI设置,那么tomcat支不支持呢?经过查证,8.5以上的版本也支持SNI,这就很开心了(8.5以下是实在没有办法了,要不然你们升级tomcat版本跟我这个教程走...
Tomcat配置SSL全过程
Tomcat配置SSL全过程
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数