浏览 11805 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-11-24
二、配置步骤 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我刚学,请大家给出意见 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-11-24
关注....
|
|
返回顶楼 | |
发表时间: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 签名。 不道谁还有更好的办法 |
|
返回顶楼 | |
发表时间:2006-11-27
我用keytool生成的客户端的client.keystore和client.trustore两个库
如果我用别的语言(除java外)编写web service的客户端能否调用这两个库文件? |
|
返回顶楼 | |