SSL的学习经验

通过使用SSL对他有了一个初步的了解

整理了一下:

由于SSL的使用比较繁琐,所用工具较多,首先将需要的软件与jar包列举如下:
1、 Tomcat 5.0
2、 Microsoft visual c++ 6.0
3、 Jsse1.0.2
4、 MASM32 (汇编编译器)
5、 Openssl0.9.9.6
6、 ActivePerl-5.8.0.806-MSWin32-x86
 
1 、生成CA私钥
openssl genrsa -out ca/ca-key.pem 1024
2 、生成待签名证书
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
3 、用CA私钥进行自签名
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365
 
1 、生成KeyPair
%JAVA_HOME%/bin/keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass changeit -storepass changeit -dname "cn=localhost, ou=department, o=company, l=Beijing, st=Beijing, c=CN" -keystore server/server_keystore
2 、生成待签名证书
%JAVA_HOME%/bin/keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file server/server.csr -keypass changeit -keystore server/server_keystore -storepass changeit
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
4 、导入信任的CA根证书到JSSE的默认位置(%JAVA_ROOT %/jre/security/cacerts)
%JAVA_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit -alias my_ca_root -file ca/ca-cert.pem -keystore %JDK_HOME%/jre/lib/security/cacerts
5 、把CA签名后的server端证书导入keystore
%JAVA_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit -alias tomcat_server -file server/server-cert.pem -keystore server/server_keystore
6 、查看server端证书
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts
keytool -list -keystore server/server_keystore
 
首先找到以下内容,去掉对其的注释。然后参照红色部分修改。如果配置Tomcat不验证客户身份,可以设置clientAuth="false"。 下面实例采用客户端不验证方式:
<Connector
        enableLookups="true"
        port="8443"
        redirectPort="-1"
        scheme="https"
        keystoreFile="%TOMCAT_HOME%/conf/server_keystore"
        keystorePass="changeit"
        sslProtocol="TLS"
        keystoreType="JKS"
        algorithm="SunX509"
        clientAuth="false"
        acceptCount="10">
    </Connector>
然后把文件server/server_keystore复制到目录%TCAT_HOME%/conf/下。
 
1 、生成client私钥
openssl genrsa -out client/client-key.pem 1024
2 、生成待签名证书
openssl req -new -out client/client-req.csr -key client/client-key.pem
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 、生成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
5 、安装信任的根证书
把ca/ca-key.pem改名为ca/ca-key.cer,在client端的IE中使用‘工具’、‘Internet选项’、‘ 内容’、‘证书 ’、‘导入’把我们生成的CA根证书导入,使其成为用户信任的CA。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值