第一部分,先说证书的申请。

这步是要到正规的CA公司申请正式的设备证书必须走的步骤。

1、先生成证书的密钥对

打开命令行,切换到某个自己新建的目录下,执行如下命令

keytool -genkey -keyalg RSA -keysize 1024 -dname “CN=www.javastar.org,OU=翊天阁,O=翊天阁,L=南京市,ST=江苏省,C=CN” -alias server -keypass 123456 -keystore server.jks -storepass 123456 -validity 365

这里说明一下几个重要的地方,CN=www.javastar.org,这里的www.javastar.org一定要换成你实际要部署的站点的域名,如果是在内网,就要用服务器的hostname,一定不可以用IP,否则,是无法建立SSL链接的。

OU=翊天阁,O=翊天阁,这里可以替换成你自己的组织名称,或者公司名称。

-validity 365这里声明证书有效期为1年。

其他的参数自己可以参考keytool的使用帮助或相关文档。

好了,成功执行上面的命令后,我们在当前命令行所在目录得到server.jks文件,这个就是包含密钥对的基本证书信息库文件。

2、导出证书请求文件

keytool -certreq -alias server -sigalg “SHA1withRSA” -file server.pem -keypass 123456 -keystore server.jks -storepass 123456

这里可以得到一个server.pem的文件。

3、向CA公司申请签发设备证书

将上一步得到的server.pem证书发送给相关的CA公司,CA公司会通过这个申请签发一张设备证书,最后我们会得到一个.cer的文件,比如server.cer。

同时,我们要取得该CA公司的证书链,比如会有CA_ROOT.cer和CA_CA.cer,第一张为CA公司的根证书,第二张为CA公司的签名证书。

4、将CA根证书导入服务器证书库

keytool -import -alias CA_ROOT -keystore server.jks -trustcacerts -storepass 123456 -file CA_ROOT.cer

5、将CA签名证书导入服务器证书库

keytool -import -alias CA_CA -keystore server.jks -trustcacerts -storepass 123456 -file CA_CA.cer

6、使用CA签发的证书回复我们自己生成的包含私钥的证书

keytool -import -alias server -keystore server.jks -trustcacerts -storepass 123456 -file server.cer

7、导出回复成功后的服务器证书

keytool -export -alias server -storepass 123456 -file javastar.org.cer -keystore server.jks

好了,到这里我们需要的设备证书已经ok了。

最后对我们实际有用的是两个文件:server.jks,是服务器证书库,存储了含有私钥的服务器证书,及其证书链,这个就是主要的设备证书了,是放在服务器的SSL配置里面;还有一个是javastar.org.cer,这个是只包含服务器证书公钥的设备证书,是发给用户,让用户放入自己的可信任库的。

第二部分,配置Tomcat的SSL双向链接

1、准备客户端证书

keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore client.p12 -dname “CN=Client,OU=javastar.org,L=nj,ST=js,C=cn” -storepass 123456 -keypass 123456 -validity 365

执行完毕,我们会得到一张p12的客户证书client.p12。

2、导出.cer格式的客户证书

keytool -export -alias client -keystore client.p12 -storetype PKCS12 -storepass 123456 -rfc -file client.cer

执行完毕得到client.cer证书。

3、将客户端证书导入服务器的可信任证书库

keytool -import -v -file client.cer -keystore servertrust.keystore -storepass 123456

执行完毕得到servertrust.keystore,这个是给tomcat服务器端用的。

4、将服务器证书导入客户端可信任证书库

keytool -import -v -file javastar.org.cer -keystore clienttrust.keystore -storepass 123456

执行完毕会得到clienttrust.keystore证书库,留着备用。同时,也可以同样的方法,把CA_ROOT.cer和CA_CA.cer导入。

5、在和tomcat的bin目录并行的目录下新建一个cert文件夹,把server.jks和servertrust.keystore文件拷贝进去。

6、找到tomcat的server.xml文件,找到如下的内容

<!–
    <Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”
               maxThreads=”150″ scheme=”https” secure=”true”
               clientAuth=”false” sslProtocol=”TLS” />
    –>
   
    去掉注释,并修改为
   
    <Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”
               maxThreads=”500″ scheme=”https” secure=”true”
               clientAuth=”true” sslProtocol=”TLS”
               keystoreFile=”D:/apache-tomcat-6.0.20/cert/server.jks” keystorePass=”123456″
        truststoreFile=”D:/apache-tomcat-6.0.20/cert/servertrust.keystore” truststorePass=”123456″/>
 
 这里注意把D:/apache-tomcat-6.0.20/cert修改为你的tomcat实际的路径。
 
7、启动或者重启tomcat,在浏览器中导入client.p12的证书,然后,在地址栏输入https://www.javastar.org:8443,就会弹出证书选择框,选择证书后,就可以使用SSL协议访问tomcat服务器了。

第三部分,在程序中如何建立与服务器的SSL双向认证链接

其实这个就简单了,以java为例,比如我们现在要访问一个通过SSL双向认证保护的WebService接口,只需要在生成的客户端程序中开始部分加入

System.setProperty(“javax.net.ssl.keyStore”, “D:/client.p12″);
System.setProperty(“javax.net.ssl.keyStorePassword”, “123456″);
System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12″);
System.setProperty(“javax.net.ssl.trustStore”, “D:/clienttrust.keystore”);
System.setProperty(“javax.net.ssl.trustStorePassword”, “123456″);
System.setProperty(“javax.net.ssl.trustStoreType”, “JKS”);

JVM会自动将证书提交给服务器验证,由于服务器证书也在我们的可信任库,也会自动信任服务器端的证书。

下面的代码可以在需要的时候清除以上的环境内容

System.clearProperty(“javax.net.ssl.keyStore”);
System.clearProperty(“javax.net.ssl.keyStorePassword”);
System.clearProperty(“javax.net.ssl.keyStoreType”);
System.clearProperty(“javax.net.ssl.trustStore”);
System.clearProperty(“javax.net.ssl.trustStorePassword”);
System.clearProperty(“javax.net.ssl.trustStoreType”);

转自https://blog.csdn.net/lucett/article/details/6845386

转载于:https://www.cnblogs.com/jinzhiming/p/10676299.html

使用CA签发的服务器证书搭建Tomcat双向SSL认证服务相关推荐

  1. CentOS搭建全功能服务器(Nginx+Tomcat+PHP+SSL)

    本文将介绍Linux环境下如何安装Web服务基础运行环境,包括以下内容: 安装jdk 安装Tomcat 安装MySQL 安装PHP 安装Nginx 安装SSL证书 整合Nginx和Tomcat 整合完 ...

  2. 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...

    转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 July 20, 20 ...

  3. Weblogic服务器证书安装配置 | Weblogic SSL

    Weblogic服务器证书安装配置 | Weblogic SSL   开始之前 Weblogic内建JDK安装,为Weblogic安装配置服务器证书需要使用Java的keytool工具.在Weblog ...

  4. 数字证书与实现双向SSL认证

    数字证书与实现双向SSL认证一:数字证书 什么是证书? 既然叫证书,肯定是用来证明什么东西的,比如身份,学历,能力等级.数字证书简单理解就是证明你在互联网中的身份.证书一般都需要有一个权威颁发机构,而 ...

  5. Tomcat双向SSL认证及CA数字证书安装和配置QQ即时通信协议窥探

    1.Java加密与解密的艺术 网络信息安全近几年成为热点.职业发展新方向,常规Web应用如BBS.BLOG.SNS及电子商务等B/S系统是以用户为核心,账号管理是这些系统中唯一的安全屏障:IM即时聊天 ...

  6. 在阿里云ECS服务器上搭建tomcat

    我购买的ECS安装的是 centos7版本的Linux系统,在网上查了一会资料搞定了,记录一下:  1.远程连接ECS  我用的是window操作系统,每次使用控制台去连接我的ECS显得非常的不方便, ...

  7. Symantec赛门铁克支持型SSL服务器证书_网站安全SSL数字证书认证

    2010年8月,赛门铁克(Symantec)收购VeriSign,VeriSign认证服务.VeriSign SSL证书.代码签名证书以及VeriSign信任签章服务现均由赛门铁克提供.作为过渡环节之 ...

  8. Symantec赛门铁克强制型SSL服务器证书_网站安全SSL数字证书

    2010年8月,赛门铁克(Symantec)收购VeriSign,VeriSign认证服务.VeriSign SSL证书.代码签名证书以及VeriSign信任签章服务现均由赛门铁克提供.作为过渡环节之 ...

  9. intellij服务器证书不受信任,ssl证书不受信任怎么办?ssl证书不受信任解决方案有什么?...

    随之愈来愈多的ssl证书错误的状况出現,大伙儿都是有ssl证书不受信任怎么办这类的难题,而且对这种难题很头痛,下边将带大伙儿解析一下ssl证书不受信任的缘故及解决方案. 一.ssl证书不会受到信任是什 ...

  10. 自定义SSL证书实现单双向ssl认证记录

    自定义SSL证书: 1.ca证书 #openssl genrsa -out ca.key 2048 #openssl req -new -key ca.key -out ca.csr #openssl ...

最新文章

  1. matlab朴素贝叶斯手写数字识别_基于MNIST数据集实现手写数字识别
  2. nginx常用功能全揭秘
  3. Charles抓包https(测试app的双向认证)
  4. Chrome开始集成图形识别 API(Shape Detection API)
  5. 空壳公司骗贷的常见手段及风控措施
  6. DVWA--File Inclusion(文件包含)--四个级别
  7. 2021中国新消费品牌社媒营销研究报告
  8. git日常使用的常用命令总结
  9. TokenInsight:反映区块链行业整体表现的 TI 指数较昨日同期上涨9.79%
  10. 2021高考志愿填报总结-yy
  11. PS打造唯美冷色调照片
  12. C:\WINDOWS\system32\config\systemprofile\Desktop引用了一个不可用的位置
  13. C#之Base64编码解码
  14. 自定义dns服务器faq,常见手机品牌的DNS修改方法
  15. firefox地址栏搜索
  16. 【蚁狮算法】《The Ant Lion Optimizer》原文翻译(附源代码)
  17. 346雷达有多少tr组件_相控阵雷达数字TR组件研究.PDF
  18. 一、java程序运行机制
  19. 百度云盘下载无限制 云视云百度网盘工具1.3正式版
  20. 钱颖一:理解经济学原理

热门文章

  1. 正面管教读书笔记 10 你的性格对孩子性格的影响
  2. java 计算毫秒差值,关于时间的操作(Java版)——获取给定时间与目前系统时间的差值(以毫秒为单位)...
  3. Word2010无法输入中文
  4. 贰贰许远东在浙江省社科联学术年会上关于“中小企业数字化之路”的分享
  5. 科学计算机设计总结,科学计算器课程设计报告
  6. iBeacon工作原理
  7. 图像分割目标检测论文集锦
  8. 论坛介绍 | COSCon'22 开源操作系统(O)
  9. 天堂2启动mysql就没了_单机天堂2运行不了 求助
  10. 红与黑题解(深搜入门ing)