1 前言
https分单向认证和双向认证,作为单向认证,实际上就是只在server端做好证书,对客户端不进行认证;而双向认证必须在客户端导入证书之后,才能访问网站;
本文是讲解单向认证的配置方法,比较简单;
2 tomcat安装
这里忽略,朋友是装的7.0.42,所以我在官网下了一个7系列最新的版本,为了方便我这边跟朋友的目录一致,我安装的目录为:/opt/apache-tomcat-7.0.59
3 证书生成
做博客,网站等通常使用的是单向认证,这里为了简单可理解,自己生成一个证书来使用;
用于在tomcat上面进行配置的单向认证证书:
#mkdir /opt/apache-tomcat-7.0.59/conf/ssl && cd /opt/apache-tomcat-7.0.59/conf/ssl
# keytool -genkey -v -alias zhoufengjie.cn -keyalg RSA -validity 3650 -keystore www.zhoufengjie.cn.keystore -dname “CN=www.zhoufengjie.cn,OU=SinoCache,O=DevOpt,L=ChaoYang,ST=BeiJing,c=CN” -storepass Password -keypass Password
这一步有点多此一举,就是用户导入到浏览器中用于信任的客户端证书,因为是单向https,所以这块其实没有太大必要,在浏览器提示的时候只需要点击下信任访问即可;
#keytool -export -alias zhoufengjie.cn -keystore www.zhoufengjie.cn.keystore -file www.zhoufengjie.cn.cer -storepass Password
Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中。
在keystore里,包含两种数据:
- 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
- 可信任的证书实体(trusted certificate entries)——只包含公钥
JDK中keytool常用命令:
-alias 产生别名,每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写;
-keystore 指定密钥库的名称
-keyalg 指定密钥的算法 (如 RSA DSA(如果不指定默认采用DSA))
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
-storepass 指定密钥库的密码(获取keystore信息所需的密码)
-keypass 指定别名条目的密码(私钥的密码)
-dname 指定证书拥有者信息
例如: “CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码”
-list 显示密钥库中的证书信息
-v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件
keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目
keytool -delete -alias 指定需删除的别名 -keystore 指定keystore -storepass 密码
-printcert 查看导出的证书信息
keytool -printcert -file yushan.crt
-keypasswd 修改密钥库中指定条目口令
keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore
-import 将已签名数字证书导入密钥库
keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书
下面是各选项的缺省值。
-alias “mykey”
-keyalg “DSA”
-keysize 1024
-validity 90
-keystore 用户宿主目录中名为 .keystore 的文件
-file 读时为标准输入,写时为标准输出
用法整体说明:
keytool -genkey -alias zhoufengjie.cn -keypass Password -keyalg RSA -keysize 1024 -validity 365 -keystore www.zhoufengjie.cn.keystore -storepass Password -dname “CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)”;(中英文即可)
4 tomcat配置
tomcat配置方面比较简单,只需要配置一下server.xml即可;
# vi /opt/apache-tomcat-7.0.59/conf/server.xml
修改defaultHost,找到如下行:
<Engine name=”Catalina” defaultHost=”www.zhoufengjie.cn”>
修改webapps host,找到并修改如下行:
<Host name=”www.zhoufengjie.cn” appBase=”webapps”
# vi /opt/apache-tomcat-7.0.59/conf/server.xml
搜索8443,找到8443的配置,在下面添加如下的内容:
<Connector port=”8443″ protocol=”org.apache.coyote.http11.Http11Protocol” SSLEnabled=”true”
maxThreads=”150″ scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS”
keystoreFile=”conf/ssl/www.zhoufengjie.cn.keystore” keystorePass=”Password” />
5 访问测试
重启tomcat进程,然后访问:https://www.zhoufengjie.cn:8443,查看测试结果,出现猫之后就说明你成功了;
为了方便大家保存,www.zhoufengjie.cn上面的文章尽量都会做成pdf文档形式方便大家留存,尽最大方便给大家提供服务,本文文档(word原始文档)下载地址:点击下载