证书存在服务器端,用户通过浏览器访问时,需要证书上下载保存到本地,表示信任服务器。同样浏览器中的证书也需要保存到服务器的证书库中,表明当前浏览器的证书是可信的。

Keytool是一个Java数据证书的管理工具,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中。在keystore里,包含两种数据:密钥实现(Key entity)--密钥(secret key)又或者是私钥和配对公钥(采用非对称加密), 可信任的证书实体(trusted certificate entries)-只包含公钥。

第一步:为服务器生成密钥(包含密钥实体和可信任的证书实体两部分)

使用keytool为tomcat生成密钥,如果目标机器的域名"localhost", keystore文件存放位置

########################################################

例:

linuxidc@0718:apache-tomcat-6.0.41$ keytool -genkey -validity 36000 -alias tomcat -keyalg RSA -keystore keystore/tomcat.keystore

输入keystore密码:

再次输入新密码:

您的名字与姓氏是什么?

[Unknown]:  liqing

您的组织单位名称是什么?

[Unknown]:  test

您的组织名称是什么?

[Unknown]:  test

您所在的城市或区域名称是什么?

[Unknown]:  beijing

您所在的州或省份名称是什么?

[Unknown]:  beijing

该单位的两字母国家代码是什么

[Unknown]:  zh

CN=liqing, OU=test, O=test, L=beijing, ST=beijing, C=zh 正确吗?

[否]:  y

输入的主密码

(如果和 keystore 密码相同,按回车):

linuxidc@0718:apache-tomcat-6.0.41$

########################################################

如果tomcat所在服务器的域名不是"localhost",应改成对应的域名,如“www.baidu.com”

-genkey 表示生成密钥

-validity 指定有效期,单位天,这里是36000天

-alias 指定密钥别名,这里是tomcat

-keyalg 指定密钥算法,这里是RSA

-keypass 指定密钥别名密码

-keysize 指定密钥长度字节数,如1024

-keystore 指定密钥文件存储位置和文件名

第二步:为客户端生成密钥

keytool -genkey命令默认是生成keystore文件,但是为了将证书大得导入到IE和Firefox,用storetype 指定文件格式为PKCS12

########################################################

例:

linuxidc@0718:apache-tomcat-6.0.41$ keytool -genkey -v -alias myKey -keyalg RSA -storetype PKCS12 -keystore keystore/myclient.p12 -dname "CN=MyKey,OU=cn,O=cn,L=cn,ST=cn,C=cn" -storepass 123456 -keypass 123456

正在为以下对象生成 1,024 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 90 天):

CN=MyKey, OU=cn, O=cn, L=cn, ST=cn, C=cn

[正在存储 keystore/myclient.p12]

linuxidc@0718:apache-tomcat-6.0.41$

########################################################

之后,把myclient.p12证书导入到浏览器

第三步: 提取客户端证书的公钥

只是有了密钥库文件还不行,还需要一个证书文件。证书文件才是直接提供给外界使用的公钥凭证。将客户端密钥库文件的公钥导出到证书文件中。

########################################################

例:

linuxidc@0718:apache-tomcat-6.0.41$ keytool -export -alias myKey -keystore keystore/myclient.p12 -storetype PKCS12 -rfc -file keystore/myclient.cer

输入keystore密码:

保存在文件中的认证

linuxidc@0718:apache-tomcat-6.0.41$

#密码输入第二步设置密码:123456

########################################################

-export 将别名指定的密钥导出到证书文件

-keystore 指定keystore文件

-alias 需要导出的别名

-file 指向导出路径和证书文件名

-rfc 以文本格式输出,也就是以BASE64编码输出

由于是双向SSL认证,服务器必须要有客户端的公钥,因此,需要将上面的客户端证书文件(实际应用中,这个证书文件同CA认证中心生成提供)导入服务器证书中。

########################################################

例:

linuxidc@0718:apache-tomcat-6.0.41$ keytool -import -v -file keystore/myclient.cer -keystore keystore/tomcat.keystore

输入keystore密码:

所有者:CN=MyKey, OU=cn, O=cn, L=cn, ST=cn, C=cn

签发人:CN=MyKey, OU=cn, O=cn, L=cn, ST=cn, C=cn

序列号:5541e6db

有效期: Thu Apr 30 16:24:59 CST 2015 至Wed Jul 29 16:24:59 CST 2015

证书指纹:

MD5:83:4C:E9:3E:EC:40:BB:8D:BC:7F:95:04:C9:35:31:F1

SHA1:8C:A4:8E:A5:D1:3B:AD:D2:67:C9:1D:74:8B:E9:ED:70:6A:16:6C:58

签名算法名称:SHA1withRSA

版本: 3

信任这个认证? [否]:  y

认证已添加至keystore中

[正在存储 keystore/tomcat.keystore]

linuxidc@0718:apache-tomcat-6.0.41$

#密码输入第二步设置密码:123456

########################################################

通过list命令查看服务器的证书库,我们可以看到两条记录,一个服务器的证书,一个是受創作的客户端证书:

keytool -list -v -keystore keystore/tomcat.keystore -storepass 123456

第四步:配置tomcat服务器

打开tomcat主目录下的conf/server.xml,找到下面几行,去掉修改为:

maxThreads="150" scheme="https" secure="true"

clientAuth="true" sslProtocol="TLS"

keystoreFile="/home/ccdtlinuxidc/workspace/Servers/apache-tomcat-6.0.41/keystore/tomcat.keystore" keystorePass="123456"

truststoreFile="/home/ccdtlinuxidc/workspace/Servers/apache-tomcat-6.0.41/keystore/tomcat.keystore" keystorePass="123456" />

第五步: 导入客户端证书

将myclient.p12证书导入浏览器

第六步: 重启tomcat服务

bin/shutdown.sh

bin/startup.sh

在浏览器地址栏中输入https://localhost:8443/便可访问

linux ssl 双向认证 脚本,Linux配置Tomcat 实现双向SSL认证相关推荐

  1. Linux 实操———CentOS 6 安装配置 Tomcat

    引言 Linux下安装Tomcat. 一.下载.传输与解压 同<Linux 实操---CentOS 6 安装配置 Oracle JDK 1.8>一样,前期都是先在远程机上下载压缩包,然后通 ...

  2. linux自动登录cmcc脚本,Linux下移动CMCC WLAN自动连接认证

    山东移动的WLAN目前覆盖了很多居民区.公共场所和高校.价格低廉,速度尚可,普通网络应用绰绰有余,准备把家中的10M廉通宽带打入冷宫. 不过CMCC WLAN每次都要Web页认证比较麻烦.幸亏Linu ...

  3. tomcat catalina localhost 没有项目_实用shell脚本--一键配置tomcat定期日志清理功能

    概述 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的 ...

  4. linux运维自动化脚本,linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  5. Linux关机运行的脚本,Linux关机时执行指定脚本功能实现

    1.关机时执行某个脚本的具体思路 (1)在文件夹/etc/init.d/下创建关机时需要执行的脚本file_name: (2)分别在文件夹/etc/rc0.d/和/etc/rc6.d/下创建该该脚本文 ...

  6. linux一键电影网站脚本,Linux下HTML5播放器一键生成脚本

    原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2394.html https://www.myzhenai.com/thread-17969-1-1.h ...

  7. linux关机前执行脚本,Linux关机时执行指定脚本

    要实现在Linux关机时执行某个脚本的具体思路 1.在文件夹 /etc/init.d/ 下创建关机时需要执行的脚本 file_name; 2.分别在文件夹 /etc/rc0.d/ 和 /etc/rc6 ...

  8. linux下的shell脚本,linux下的shell脚本的使用

    什么是shell? Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户.这种对话方式可是交互 ...

  9. linux pppd ip up 脚本,Linux下pppd拨号脚本配置(转载)

    摘要 本文主要介绍了嵌入式Linux系统下使用pppd 2.4.4来进行PPP拨号需要使用的脚本是如何配置的,配置项的含义,同时也说明了如何来配置参数,实现ppp拨号上网. 一.问题提出 嵌入式Lin ...

最新文章

  1. 在C++的类中封装多线程
  2. C/C++ Development Library
  3. JVM空间申请流程图
  4. leetcode453. 最小操作次数使数组元素相等(贼难的简单题)
  5. Nagios添加主机监控失败-故障小结
  6. 十年沉淀,阿里云发布全球领先的对象存储OSS可用性SLA
  7. 理想汽车市值逼近蔚来,王兴曾多次在饭否为其站台
  8. 分表扩展全局序列原理_高可用_单表存储千万级_海量存储_分表扩展---MyCat分布式数据库集群架构工作笔记0025
  9. 【10天基于STM32F401RET6智能锁项目实战第2天】(分别用库函数和寄存器点灯)
  10. 搭建测试环境_当面试时被问到“搭建过测试环境吗”, 身为小白要怎么回答?...
  11. PHP面向对象之继承和多态
  12. Silverlight 4 or 5 安装步骤
  13. 《CSS世界》:一本CSS领域的内功心法修炼手册
  14. 仓库管理一团糟,WMS仓库管理系统如何解决这些难点
  15. 荣耀 MagicBook 14 2022评测 荣耀magicbook14优缺点
  16. kubeadm集群化部署多master节点(生产环境适用)
  17. 关于IOS中uni.downloadFile下载的图片显示不出来的解决方法
  18. K12526 找双亲和孩子
  19. MATLAB中逻辑类型详解
  20. 基于jsp+ssm的房源信息管理系统

热门文章

  1. 广东省林业资质怎么办理?需要哪些人员和材料?
  2. java content-type设置_POST请求时 content-type的设置以及参数传递
  3. 【RPA】使用RPA捕捉抖音数据
  4. 【C语言】刷题(1)
  5. elementui菜单下拉样式修改
  6. php RSA非对称加密秘钥生成
  7. 软件集成测试策略有哪些,面向对象的集成测试与传统的软件集成测试有什么不同?分别有哪些策略?...
  8. DCT-Net工业级轻量化人像漫画
  9. Oracle查询中文乱码
  10. 30K成功入职京东:拿到京东offer经验分享