在tomcat中测试ssl的时候使用openssl,需要生成一个客户端证书,这个脚本是我当时的执行脚本
//runnerrunning@163.com 原创
del ca
del server
del client
rem 4.2.1 建立工作目录
mkdir ca
rem 4.2.2 生成CA私钥以及自签名根证书
rem 4.2.2.1 生成CA私钥
openssl genrsa -out ca/ca-key.pem 512
rem 4.2.2.2 生成待签名证书
openssl req -config apps/openssl.cnf -new -out ca/ca-req.csr -key ca/ca-key.pem
rem 4.2.2.3 用CA私钥进行自签名
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365
rem 4.3 设置Tomcat 4.x
rem 在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%TCAT_HOME%" 表示Tomcat的安装位置。
rem 4.3.1建立工作目录
mkdir server
//runnerrunning@163.com 原创
rem 4.3.2 生成server端证书
rem 4.3.2.1 生成KeyPair
rem %JDK_HOME%/bin/keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass changeit -storepass changeit -dname "cn=localhost, ou=ww, o=ww, l=ww, st=ww, c=ww" -keystore server/server_keystore
%JDK_HOME%/bin/keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 512 -keypass changeit -storepass changeit -keystore server/server_keystore
//runnerrunning@163.com 原创
rem 4.3.2.2 生成待签名证书
%JDK_HOME%/bin/keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file server/server.csr -keypass changeit -keystore server/server_keystore -storepass changeit
rem 4.3.2.3 用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
rem 首先清除已有的根证书
keytool -delete -alias my_ca_root -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
rem 4.3.2.4 导入信任的CA根证书到JSSE的默认位置(%JDK_ROOT %/jre/security/cacerts)
%JDK_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit -alias my_ca_root -file ca/ca-cert.pem -keystore %JDK_HOME%/jre/lib/security/cacerts
rem 4.3.2.5 把CA签名后的server端证书导入keystore
%JDK_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit -alias tomcat_server -file server/server-cert.pem -keystore server/server_keystore
rem 4.3.2.6 查看server端证书
keytool -list -keystore %JDK_HOME%/jre/lib/security/cacerts
keytool -list -keystore server/server_keystore
rem 然后把文件server/server_keystore复制到目录%TCAT_HOME%/conf/下。
del "%TOMCAT_HOME%/conf/server_keystore"
copy server/server_keystore "%TOMCAT_HOME%/conf/server_keystore"
rem 4.4.1 建立工作目录
mkdir client
rem 4.4.2 生成client私钥并用CA私钥签名
rem 4.4.2.1 生成client私钥
openssl genrsa -out client/client-key.pem 512
rem 4.4.2.2 生成待签名证书
openssl req -config apps/openssl.cnf -new -out client/client-req.csr -key client/client-key.pem
rem 4.4.2.3 用CA私钥进行签名
openssl x509 -req -in client/client-req.csr -out client/client.crt -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 365
rem 4.4.2.4 生成client端的个人证书
rem 因为JSSE1.0.2没有完全实现了对PKCS#12格式文件的操作(只能读取,不能输出),所以在这里需要用openssl制作client端的个人证书(包含私钥)。
rem 例子:openssl pkcs12 -export -in file.pem -out file.p12 -name "My Certificate"
openssl pkcs12 -export -clcerts -in client/client.crt -inkey client/client-key.pem -out client/client.p12
rem 4.4.2.5 安装信任的根证书
rem 把ca/ca-key.pem改名为ca/ca-key.cer,在client端的IE中使用"工具 ' Internet选项 ' 内容 ' 证书 ' 导入"把我们生成的CA根证书导入,使其成为用户信任的CA。
copy ca/ca-key.pem ca/ca-key.cer
rem 4.4.3 安装个人证书
rem 把client.p12导入到client端的IE中作为个人证书,导入过程同4.4.2.5。
rem 4.5 用IE浏览器使用SSL协议访问Tomcat
兄弟们看完别忘了点左边的广告阿。