最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

tomcat8配置HTTPS,简单webservice客户端调用

来源:动视网 责编:小OO 时间:2025-10-02 07:27:06
文档

tomcat8配置HTTPS,简单webservice客户端调用

Tomat8配置HTTPS一.环境:Jdk1.8Tomcat8.0.22二.步骤:1,创建证书:首先建立目录,例如:d:/keys然后利用jdk的keytool工具生成证书d:\\keys>keytool-genkey-aliaswsria-keyalgRSA-keystored:/keys/wsriakey.keystore具体的输入项图片中都有说明,有一点我要解释一下;在输入完密码后提示输入域名是我输入的是sso.wsria.com,其实这个域名是不存在的,但是我为了演示所以虚拟了这个域名
推荐度:
导读Tomat8配置HTTPS一.环境:Jdk1.8Tomcat8.0.22二.步骤:1,创建证书:首先建立目录,例如:d:/keys然后利用jdk的keytool工具生成证书d:\\keys>keytool-genkey-aliaswsria-keyalgRSA-keystored:/keys/wsriakey.keystore具体的输入项图片中都有说明,有一点我要解释一下;在输入完密码后提示输入域名是我输入的是sso.wsria.com,其实这个域名是不存在的,但是我为了演示所以虚拟了这个域名
Tomat8配置HTTPS

一.环境:

Jdk1.8 

Tomcat8.0.22

二.步骤:

1,创建证书:

首先建立目录,例如:d:/keys

然后利用jdk的keytool工具生成证书

d:\\keys>keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/wsriakey.keystore

具体的输入项图片中都有说明,有一点我要解释一下;在输入完密码后提示输入域名是我输入的是sso.wsria.com,其实这个域名是不存在的,但是我为了演示所以虚拟了这个域名,技巧在于修改

C:\\Windows\\System32\\drivers\\etc\\hosts

添加内容如下:

127.0.0.1  sso.wsria.com

这样在访问sso.wsria.com的时候其实是访问的127.0.0.1也就是本机

严重提醒:提示输入域名的时候不能输入IP地址

2,导出证书:

d:\\keys>keytool -export -file d:/keys/wsria.crt -alias wsria -keystore d:/keys/wsriakey.keystore

3,为客户端的JVM导入证书(目前没觉得这步有什么用)

d:\\keys>keytool -import -alias kk -keystore "D:\\Program Files\\Java\\jdk1.8.0_45\\jre\\lib\\security\\cacerts" -file D:/keys/wsria.crt

此处输入的口令是:changeit

4、应用证书到Web服务器-Tomcat

打开tomcat目录的conf/server.xml文件,开启83和87行的注释代码,并设置keystoreFile、keystorePass修改结果如下:注意大小写

               maxThreads="150" SSLEnabled="true" 

scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" 

keystoreFile="D:/keys/wsriakey.keystore" 

keystorePass="123456"/>

到此Tomcat的SSL启用完成,现在你可以启动tomcat试一下了

http://192.168.5.16:8443/

----------------------------------------------------------------------------------------------------------------------

以下是另一个方法,由于配置过程中出错,没有详细研究,不过觉得这个方法讲的比较详细,暂且在这里列出来,留作以后研究(webservice部分还是挺有用的)

环境

Jdk1.6     Tomcat6     jax-ws webservice

1生成证书

  这里用到的文件,我们存放在D:/SSL/文件夹内,其中D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。

  1.1生成服务端证书

开始-运行-CMD-在dos窗口执行下执行命令:

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/SSL/server/tomcat.keystore -dname "CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" -validity 3650 -storepass zljzlj -keypass zljzlj

说明:

keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help

-genkey 创建新证书

-v 详细信息

-alias tomcat 以”tomcat”作为该证书的别名。这里可以根据需要修改

-keyalg RSA 指定算法

-keystore D:/SSL/server/tomcat.keystore 保存路径及文件名

-dname "CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" 证书发行者身份,这里的CN要与发布后的访问域名一致。但由于我们是自己发行的证书,如果在浏览器访问,仍然会有警告提示。

-validity 3650证书有效期,单位为天

-storepass zljzlj 证书的存取密码

-keypass zljzlj 证书的私钥

注意:上面标红的部分“CN=127.0.0.1”,参照前面文档

本人输入ip地址生成证书后,再用 webservice 客户端 调用的时候确实会报错,而且纠结了我一天

    1.2 生成客户端证书 

 执行命令:

keytool ‐genkey ‐v ‐alias client ‐keyalg RSA ‐storetype PKCS12 ‐keystore D:/SSL/client/client.p12 ‐dname "CN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN" ‐validity 3650 ‐storepass client ‐keypass client

说明:

    参数说明同上。这里的-dname 证书发行者身份可以和前面不同,到目前为止,这2个证书可以没有任何关系。下面要做的工作才是建立2者之间的信任关系。

    1.3 导出客户端证书 

    执行命令:

keytool ‐export ‐alias client ‐keystore D:/SSL/client/client.p12 ‐storetype PKCS12 ‐storepass client ‐rfc ‐file D:/SSL/client/client.cer

说明:

-export 执行导出

-file 导出文件的文件路径

    1.4 把客户端证书加入服务端证书信任列表 

    执行命令:

keytool ‐import ‐alias client ‐v ‐file D:/SSL/client/client.cer ‐keystore D:/SSL/server/tomcat.keystore ‐storepass zljzl

说明:

参数说明同前。这里提供的密码是服务端证书的存取密码。

    1.5 导出服务端证书 

    执行命令:

keytool -export -alias tomcat -keystore D:/SSL/server/tomcat.keystore -storepass zljzlj -rfc -file D:/SSL/server/tomcat.cer

说明:

把服务端证书导出。这里提供的密码也是服务端证书的密码。

    1.6 生成客户端信任列表 

    执行命令:

keytool -import -file D:/SSL/server/tomcat.cer -storepass zljzlj -keystore D:/SSL/client/client.truststore -alias tomcat –noprompt

说明:

让客户端信任服务端证书

2. 配置服务端为只允许HTTPS连接

    2.1 配置Tomcat 目录下的/conf/server.xml 

Xml代码  收藏代码

           maxThreads="150" scheme="https" secure="true" clientAuth="true"    

       sslProtocol="TLS" keystoreFile="D:/SSL/server/tomcat.keystore"    

       keystorePass="zljzlj" truststoreFile="D:/SSL/server/tomcat.keystore"    

       truststorePass="zljzlj" />   

说明:

在server.xml里面这段内容本来是被注释掉的,如果想使用https的默认端口443,请修改这里的port参数。其中的clientAuth="true" 指定了双向证书认证。

    2.2 配置服务端项目web.xml 

    在之后增加:

Xml代码  收藏代码

     

    

       

            SSL

            /service/*

       

       

            SSL required

           

           

           

            CONFIDENTIAL

       

   

说明:

这里了WEB service服务地址的访问必须为https连接。要根据你的web service服务地址配置。

3. 修改客户端代码 

在执行访问之前,增加:

Java代码  收藏代码

    System.setProperty("javax.net.ssl.trustStore", "D:/SSL/client/client.truststore");    

    System.setProperty("javax.net.ssl.trustStorePassword

    System.setProperty("javax.net.ssl.keyStoreType

    System.setProperty("javax.net.ssl.keyStore

    System.setProperty("javax.net.ssl.keyStorePassword

    String endPoint="https://127.0.0.1:8443/easbCut/services/ApplyFormService";    

    ...    

 通过设置参数来指定客户端连接时所使用的客户端证书,这里还可以采用修改JVM启动参数的的方式来执行,但出于不影响其他功能的考虑,这里采用System.setProperty的方式来设置这些参数,在使用结束后,可以还原这些参数配置。

 

做为客户端的开发者,可以把拿到的证书文件后,只执行步骤3。

文档

tomcat8配置HTTPS,简单webservice客户端调用

Tomat8配置HTTPS一.环境:Jdk1.8Tomcat8.0.22二.步骤:1,创建证书:首先建立目录,例如:d:/keys然后利用jdk的keytool工具生成证书d:\\keys>keytool-genkey-aliaswsria-keyalgRSA-keystored:/keys/wsriakey.keystore具体的输入项图片中都有说明,有一点我要解释一下;在输入完密码后提示输入域名是我输入的是sso.wsria.com,其实这个域名是不存在的,但是我为了演示所以虚拟了这个域名
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top