http://blog.sina.com.cn/s/blog_4890155d01009lew.html
1.生成CA证书。目前不使用第三方权威机构的CA来认证,自己充当CA的角色。
引用1.创建私钥:C:/OpenSSL/apps>openssl genrsa -out root/root-key.pem 1024
2.创建证书请求:C:/OpenSSL/apps>openssl req -new -config openssl.cnf -out root/root-req.csr -key root/root-key.pem
3.自签署证书:C:/OpenSSL/apps>openssl x509 -req -in root/root-req.csr -out root/root-cert.pem -signkey
root/root-key.pem -days 3650
4.将证书导出成浏览器支持的.p12格式:C:/OpenSSL/apps>openssl pkcs12 -export -clcerts -in root/root-cert.pem -inkey
root/root-key.pem -out root/root.p12
引用1.创建私钥:C:/OpenSSL/apps>openssl genrsa -out server/server-key.pem 1024
2.创建证书请求:C:/OpenSSL/apps>openssl req -new -config openssl.cnf -out server/server-req.csr -key server/server-key.pem
3.自签署证书:C:/OpenSSL/apps>openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey
server/server-key.pem -CA root/root-cert.pem -CAkey root/root-key.pem -CAcreateserial -days 3650
4.将证书导出成浏览器支持的.p12格式:C:/OpenSSL/apps>openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey
server/server-key.pem -out server/server.p12
3.生成client证书。
引用1.创建私钥:C:/OpenSSL/apps>openssl genrsa -out client/client-key.pem 1024
2.创建证书请求:C:/OpenSSL/apps>openssl req -new -config openssl.cnf -out client/client-req.csr -key client/client-key.pem
3.自签署证书:C:/OpenSSL/apps>openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey
client/client-key.pem -CA root/root-cert.pem -CAkey root/root-key.pem -CAcreateserial -days 3650
4.将证书导出成浏览器支持的.p12格式:C:/OpenSSL/apps>openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey
client/client-key.pem -out client/client.p12
4.根据root证书生成jks文件
引用C:/OpenSSL/apps/root>keytool -import -v -trustcacerts -storepass password -alias root -file root-cert.pem -keystore root.jks
5.配置tomcat ssl,修改conf/server.xml。tomcat6中多了SSLEnabled="true"属性。
keystorefile, truststorefile设置为你正确的相关路径
sslenabled="true" maxhttpheadersize="8192" maxthreads="150"
minsparethreads="25" maxsparethreads="75" enablelookups="false"
disableuploadtimeout="true" acceptcount="100" sslprotocol="TLS"
clientauth="true" keystorefile="d:/path/bin/x509/server.p12"
keystoretype="PKCS12" keystorepass="123456" truststorefile="d:/path/bin/x509/root.jks"
truststoretype="JKS" truststorepass="123456"/>
6.将root.p12,client.p12分别导入到IE中去(打开IE->;Internet选项->内容->证书)。
root.p12导入至 受信任的根证书颁发机构,client.p12导入至 个人
7.访问你的应用http://ip:8443,如果配置正确的话会出现请求你数字证书的对话框。
8.在jsp中取得符合x.509格式的证书
××××××××××××××××××××××××××××××××××××××××××××××××
C:/OpenSSL/apps>openssl genrsa -out D:/root-key.pem 1024
openssl req -new -config openssl.cnf -out D:/root-req.csr -key D:/root-key.pem
openssl x509 -req -in D:/root-req.csr -out D:/root-cert.pem -signkey D:/root-key.pem -days 3650
openssl pkcs12 -export -clcerts -in D:/root-cert.pem -inkey D:/root-key.pem -out D:/root.p12
-----------------
openssl genrsa -out D:/server/server-key.pem 1024
openssl req -new -config openssl.cnf -out D:/server/server-req.csr -key D:/server/server-key.pem
openssl x509 -req -in D:/server/server-req.csr -out D:/server/server-cert.pem -signkey D:/server/server-key.pem -CA D:/root-cert.pem -CAkey D:/root-key.pem -CAcreateserial -days 3650
openssl pkcs12 -export -clcerts -in D:/server/server-cert.pem -inkey D:/server/server-key.pem -out D:/server/server.p12
--------------- 3.生成client证书。
openssl genrsa -out D:/client/client-key.pem 1024
openssl req -new -config openssl.cnf -out D:/client/client-req.csr -key D:/client/client-key.pem
openssl x509 -req -in D:/client/client-req.csr -out D:/client/client-cert.pem -signkey D:/client/client-key.pem -CA D:/root-cert.pem -CAkey D:/root-key.pem -CAcreateserial -days 3650
openssl pkcs12 -export -clcerts -in D:/client/client-cert.pem -inkey D:/client/client-key.pem -out D:/client/client.p12
---------------
4.根据root证书生成jks文件
keytool -import -v -trustcacerts -storepass 123456 -alias D:/root.p12 -file D:/root-cert.pem -keystore D:/root.jks
××××××××××××××××××××××××××××××××××××××××××××××××
配置server.xml时
报了什么socket错 几个属性找不到错
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/server.ks"
keystorePass="rwm258"
ciphers="sunchis"
/>
先前用
protocol="HTTP/1.1"
不行
Google下改 protocol="org.apache.coyote.http11.Http11Protocol"
根据Tomcat官方的文档http://tomcat.apache.org/tomcat-6.0-doc/config/http.html,”HTTP/1.1″和”org.apache.coyote.http11.Http11Protocol”是一样的,但是不知道为什么前者会出错而后者就是对的,而且HTTP部分的Connector用的也是”HTTP/1.1″。
××××××××××××××××××××××××××××××××××××××××××××××××
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="D:/server/server.p12"
keystoreType="PKCS12"
keystorePass="123456"
truststoreFile="D:/root.jks"
truststoreType="JKS"
truststorePass="123456" />
××××××××××××××××××××××××××××××××××××××××××××××××