4.2.1 建立工作目录demoCA4.2.2 生成CA私钥以及自签名根证书4.2.2.1 生成CA私钥openssl genrsa -out demoCA\ca-key.pem 10244.2.2.2 生成待签名证书openssl req -new -out demoCA\ca-req.csr -key demoCA\ca-key.pem4.2.2.3 用CA私钥进行自签名openssl x509 -req -in demoCA\ca-req.csr -out ca\ca-cert.pem -signkey demoCA\ca-key.pem -days 3654.3 设置Tomcat 4.x在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%TCAT_HOME%" 表示Tomcat的安装位置。
4.3.1建立工作目录mkdir server4.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_keystore4.3.2.2 生成待签名证书%JDK_HOME%\bin\keytool -certreq -alias tomcat_server -sigalgMD5withRSA -file server\server.csr -keypass 123456 -keystoreserver\server_keystore -storepass changeit4.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 -CAserialdemoCA/ca-cert.srl -CAcreateserial -days 3654.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\cacerts4.3.2.5 把CA签名后的server端证书导入keystore%JDK_HOME%\bin\keytool -import -v -trustcacerts -storepass changeit-alias tomcat_server -file server\server-cert.pem -keystoreserver\server_keystore%JDK_HOME%\bin\keytool -import -v -alias tomcat_server -fileserver\server-cert.pem -storepass 123456 -keystore server_keystore4.3.2.6 查看server端证书keytool -list -keystore %JDK_HOME%\jre\lib\security\cacertskeytool -list -keystore server\server_keystore4.3.3 修改server.xml使Tomcat支持SSL首先找到以下内容,去掉对其的注释。
然后参照红色部分修改。
如果配置Tomcat不验证客户身份,可以设置clientAuth="false"。
<Connector className="org.apache.catalina.connector.http.HttpConnector" port="8443" minProcessors="5" maxProcessors="75"enableLookups="true"acceptCount="10" debug="0" scheme="https" secure="true"><Factory className=".SSLServerSocketFactory" clientAuth="true" protocol="TLS"keystoreFile="%TCAT_HOME%/conf/server_keystore"keystorePass="changeit"/>然后把文件server\server_keystore复制到目录%TCAT_HOME%\conf\下。
4.4 在IE中安装个人证书4.4.1 建立工作目录mkdir client4.4.2 生成client私钥并用CA私钥签名4.4.2.1 生成client私钥openssl genrsa -out client\client-key.pem 10244.4.2.2 生成待签名证书openssl req -new -out client\client-req.csr -key client\client-key.pem4.4.2.3 用CA私钥进行签名openssl x509 -req -in client\client-req.csr -out client\client.crt -signkeyclient\client-key.pem-CA ca\ca-cert.pem -CAkey ca\ca-key.pem -CAcreateserial -days 3654.4.2.4 生成client端的个人证书因为JSSE1.0.2没有完全实现了对PKCS#12格式文件的操作(只能读取,不能输出),所以在这里需要用openssl制作client端的个人证书(包含私钥)。
openssl pkcs12 -export -clcerts -in client\client.crt -inkeyclient\client-key.pem -out client\client.p124.4.2.5 安装信任的根证书#把ca\ca-key.pem改名为ca\ca-key.cer,在client端的IE中使用"工具' Internet选项' 内容' 证书' 导入"把我们生成的CA根证书导入,使其成为用户信任的CA。
运行这条命令CA才能被导入fireFox的服务器证书列表中:/usr/local/ssl/ca# openssl pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p124.4.3 安装个人证书把client.p12导入到client端的IE中作为个人证书,导入过程同4.4.2.5。
4.5 用IE浏览器使用SSL协议访问Tomcat4.5.1 启动Tomcat 4.x执行%TCAT_HOME%\bin\startup.bat启动Tomcat 4.x4.5.2 用IE访问Tomcat 4.x在IE浏览器的地址栏中输入https://localhost:8443,如果前面的操作都正确的话,应该可以看到Tomcat的欢迎页面。
同时状态栏上的小锁处于闭合状态,表示您已经成功地与服务器建立了要求客户端验证的SSL 安全连接。
/duanzhimin528/archive/2010/06/22/324182.html编码(也用于扩展名)•.DER = 扩展名DER用于二进制DER编码的证书。
这些证书也可以用或者作为扩展名。
比较合适的说法是“我有一个DER编码的证书”,而不是“我有一个DER证书”。
•.PEM = 扩展名PEM用于ASCII(Base64)编码的各种X.509 v3 证书。
文件开始由一行"—–BEGIN …“开始。
常用的扩展名•. = 扩展名用于证书。
证书可以是DER编码,也可以是PEM编码。
扩展名和几乎是同义词。
这种情况在各种unix/linux系统中很常见。
• = 证书的微软型式。
可以用微软的工具把文件转换为文件(和必须是相同编码的,DER或者PEM)。
扩展名为的文件可以被IE识别并作为命令调用微软的cryptoAPI(具体点就是rudll32.exe cryptext.dll,CyrptExtOpenCER),进而弹出一个对话框来导入并/或查看证书内容。
•.KEY = 扩展名KEY用于PCSK#8的公钥和私钥。
这些公钥和私钥可以是DER编码或者PEM编码。
文件和文件只有在使用相同编码的时候才可以安全地相互替代。
证书导入Der/Cer证书导入:要从某个文件中导入某个证书,使用keytool工具的-import命令:keytool -import -file mycert.der -keystore mykeystore.jks如果在 -keystore 选项中指定了一个并不存在的密钥仓库,则该密钥仓库将被创建。
如果不指定 -keystore 选项,则缺省密钥仓库将是宿主目录中名为 .keystore 的文件。
如果该文件并不存在,则它将被创建。
创建密钥仓库时会要求输入访问口令,以后需要使用此口令来访问。
可使用-list 命令来查看密钥仓库里的内容:keytool -list -rfc -keystore mykeystore.jksP12格式证书导入:keytool无法直接导入PKCS12文件。
第一种方法是使用IE将pfx证书导入,再导出为cert格式文件。
使用上面介绍的方法将其导入到密钥仓库中。
这样的话仓库里面只包含了证书信息,没有私钥内容。
第二种方法是将pfx文件导入到IE浏览器中,再导出为pfx文件。
新生成的pfx不能被导入到keystore中,报错:keytool错误:ng.Exception: 所输入的不是一个 X.509 认证。