论坛首页 Java企业应用论坛

web service的客户端怎么启用ssl

浏览 11806 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-24  
SOA
我把webservice的服务端以Axis形式发布的,但是我的tomcat配置支持SSL了,如下:
二、配置步骤
2.1  建立自己的CA证书(假设openssl安装到了c:\openssl)
1.在适当的地方建立自己的CA目录,例如:ca
2. 我的电脑-〉右键-〉属性-〉高级-〉环境变量-〉新建->administrator用户变量-〉变量名:OPENSSL_CONF->变量值:C:\openssl\ssl\openssl.cnf
2.生成CA密钥
openssl genrsa -out ca/ca-key.pem 1024
genrsa [产生密钥命令] –out[密钥文件输出路径] 1024 [密钥位数]
3.生成待签名的证书
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
req[产生证书命令]-new[新生成]-out[证书文件输出路径]-key[私钥文件路径]
4.用CA私钥自签名
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365
x509[签发x509证书命令]-req[输入待签发证书]-in[输入待签发证书文件路径]-out[产生x509证书文件输出路径]-signkey[自签发密钥文件路径]-days[证书有效期]–CA[签发跟证书]-Cakey[根证书密钥文件] –-CAcreateserial[创建序列号]
2.2  配置Tomcat 4.X
2.2.1建立服务器证书
[注] 在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%TCAT_HOME%" 表示Tomcat的安装位置。
1.建立工作目录
在目录下建立自己的server目录,例如:server
2.生成server密钥对
C:\j2sdk1.4.1_01\bin\keytool -genkey -alias tomcat -validity 365 -keyalg RSA -keysize 1024 -keystore server/server_keystore
   -genkey[产生密钥对]-alias[密钥对别名]-validity[密钥有效期]-keyalg[密钥算法参数]-keysize[密钥位数]-keypass[密钥保护密码]-storepass[存储密码]-dname[别名相关附加信息]-keystore[密钥存储文件路径]
[注]  -alias后的tomcat是密钥对的名字可替换为自己需要的名字;
-keypass与-storepass后的密码为保护密码必须6位;
其中cn是服务器的名字一定要与WEB服务器中设置的一样。
3.生成待签名证书
C:\j2sdk1.4.1_01\bin\keytool -certreq -alias tomcat -sigalg MD5withRSA -file server/server.csr -keypass allcom -keystore server/server_keystore -storepass allcom
-certreq[产生待签名证书]-alias[证书别名]-sigalg[证书算法参数]-file [产生文件输出路径]-keypass[密钥保护密码]-keystore[存储文件路径]-storepass[存储密码]
4.拷贝C:\openssl\apps\ca-cert.srl文件到ca目录
5.用CA私钥签名
openssl x509 -req -in server/server.csr -out server/server-cert.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -days 365
2.2.2将CA根证书和服务器证书导入Tomcat
1. 导入CA根证书
C:\j2sdk1.4.1_01\bin\keytool -import -v -trustcacerts -storepass allcom -alias allcom_ca_root -file ca/ca-cert.pem -keystore server/cacerts
-import[导入命令] -v–trustcacerts[导入信任证书] –storepass[存储密码]-alias[证书别名]-file[证书文件路径]-keystore[导入文件路径]-alias为CA根证书的别名。
2.拷贝cacerts文件到C:\j2sdk1.4.1_01\jre\lib\security目录
3.导入服务器证书
C:\j2sdk1.4.1_01\bin\keytool -import -v -trustcacerts -storepass allcom -alias tomcat -file server/server-cert.pem -keystore server/server_keystore
[注] 此时的-storepass为生成证书时输入密码。-alias为服务器证书的别名。
4.查看证书
查看CA证书
C:\j2sdk1.4.1_01\bin\keytool -list -keystore server/cacerts
查看服务器证书
C:\j2sdk1.4.1_01\bin\keytool -list -keystore server/server_keystore
2.2.3修改Tomcat的配置文件
1.把文件server/ server_keystore复制到目录%TCAT_HOME%/conf下
2.修改conf目录下server.xml文件找到以下内容去掉其注释并修改。
<!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
    <Connector className="org.apache.catalina.connector.http.HttpConnector"
               port="8443" minProcessors="5" maxProcessors="75"
               enableLookups="false"
               acceptCount="10" debug="0" scheme="https" secure="true">
      <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
               clientAuth="true" protocol="TLS"
keystoreFile="c:/tomcat 4.0.6/conf/server_keystore" keystorePass="allcom"/>
    </Connector>
2.3  配置IE客户端
2.3.1建立Client证书
1.建立自己的Client目录,例如:client
2.生成Client密钥对
openssl genrsa -out client/client-key.pem 1024
3.生成待签名的证书
openssl req -new -out client/client-req.csr -key client/client-key.pem
4.用CA私钥签名
openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 365
5.生成Client端可以导入的个人证书
openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
pkcs12[生成PKS12格式证书命令]-export[导出文件]-clerts[仅导出client证书]-in[输入的client证书文件路径]-inkey[client证书密钥文件路径]-out[导出PKS12格式文件路径]
2.3.2将CA证书与client证书导入IE
1. 导入CA根证书
将目录ca中的ca-cert.pem改名为ca-cert.cer;
在client端的IE中使用<工具>,< Internet选项>,<内容>,<证书>,<导入>,把我们生成的CA根证书导入,使其成为用户信任的CA。
2. 导入client证书
将client证书(client.p12)导入到client端的IE中作为client证书,导入过程同上
我想知道webservice的客户端怎么启用ssl与服务端建立连接啊?
我现在在客户端也用服务端的证书可以建立连接,不知道这样做对吗?
对于web service和ssl我刚学,请大家给出意见
   发表时间:2006-11-24  
关注....
0 请登录后投票
   发表时间:2006-11-24  
这个问题我已解决:我用keytool生成了服务端的的信任库和密钥库,还有客户端的信任库和密钥库
然后我在修改conf目录下server.xml文件,在此我在开个新端口9000,让web service客户端利用此端口
来建立ssl通道。
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="9000" minProcessors="5" maxProcessors="75"
enableLookups="false"
acceptCount="10" debug="0" scheme="https" secure="true">
<Factory className="org.apache.catalina.net.SSLServerSocketFactory"
clientAuth="true" protocol="TLS"
keystoreFile="c:/tomcat 4.0.6/conf/server.keystore" keystorePass="123456"
truststoreFile="c:/tomcat 4.0.6/conf/server.truststore" keystorePass="123456"//>
</Connector>
这样就可以了
只不过没有经过CA 签名。
不道谁还有更好的办法
0 请登录后投票
   发表时间:2006-11-27  
我用keytool生成的客户端的client.keystore和client.trustore两个库
如果我用别的语言(除java外)编写web service的客户端能否调用这两个库文件?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics