用Keytool和OpenSSL生成和签发数字证书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.1 建立工作目录
demoCA
4.2.2 生成CA私钥以及自签名根证书
4.2.2.1 生成CA私钥
openssl genrsa -out demoCA\ca-key.pem 1024
4.2.2.2 生成待签名证书
openssl req -new -out demoCA\ca-req.csr -key demoCA\ca-key.pem
4.2.2.3 用CA私钥进行自签名
openssl x509 -req -in demoCA\ca-req.csr -out ca\ca-cert.pem -signkey demoCA\ca-key.pem -days 365
4.3 设置Tomcat 4.x
在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%TCAT_HOME%" 表示Tomcat的安装位置。
4.3.1建立工作目录
mkdir server
4.3.2 生成server端证书
4.3.2.1 生成KeyPair
%JDK_HOME%\bin\keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore server\server_keystore
4.3.2.2 生成待签名证书
%JDK_HOME%\bin\keytool -certreq -alias tomcat_server -sigalg
MD5withRSA -file server\server.csr -keypass 123456 -keystore
server\server_keystore -storepass changeit
4.3.2.3 用CA私钥进行签名
openssl x509 -req -in server\server.csr -out server\server-cert.pem -CA demoCA\ca-cert.pem -CAkey demoCA\ca-key.pem -CAserial
demoCA/ca-cert.srl -CAcreateserial -days 365
4.3.2.4 导入信任的CA根证书到JSSE的默认位置
(%JDK_ROOT %/jre/security/cacerts)
%JDK_HOME%\bin\ keytool -import -v -trustcacerts -storepass 123456
-alias my_ca_root -file demoCA\ca-cert.pem
-keystore %JDK_HOME%\jre\lib\security\cacerts
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
%JDK_HOME%\bin\keytool -import -v -alias tomcat_server -file
server\server-cert.pem -storepass 123456 -keystore server_keystore
4.3.2.6 查看server端证书
keytool -list -keystore %JDK_HOME%\jre\lib\security\cacerts
keytool -list -keystore server\server_keystore
4.3.3 修改server.xml使Tomcat支持SSL
首先找到以下内容,去掉对其的注释。然后参照红色部分修改。如果配置Tomcat不验证客户身份,可以设置
clientAuth="false"。
enableLookups="true" acceptCount="10" debug="0" scheme="https" secure="true"> keystoreFile="%TCAT_HOME%/conf/server_keystore" keystorePass="changeit" /> 然后把文件server\server_keystore复制到目录%TCAT_HOME%\conf\下。 4.4 在IE中安装个人证书 4.4.1 建立工作目录 mkdir client 4.4.2 生成client私钥并用CA私钥签名 4.4.2.1 生成client私钥 openssl genrsa -out client\client-key.pem 1024 4.4.2.2 生成待签名证书 openssl req -new -out client\client-req.csr -key client\client-key.pem 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 4.4.2.4 生成client端的个人证书 因为JSSE1.0.2没有完全实现了对PKCS#12格式文件的操作(只能读取,不能输出),所以在这里需要用openssl制作client端的个人证书(包含私钥)。 openssl pkcs12 -export -clcerts -in client\client.crt -inkey client\client-key.pem -out client\client.p12 4.4.2.5 安装信任的根证书