tomcat配置ssl证书ip访问(tomcat配置https协议)
服务器证书受到了越来越多电商企业的青睐,它不仅可以显示网站的真实性,还可以在网站用户输入密码与用户名时对这些信息进行加密,全程保护用户信息安全放心完成交易。但很多企业在购买了ssl服务器证书后一头雾水,不知道如何下手进行安装。下面就教您如何在tomcat服务器上安装ssl证书。(内容主要来源网络搜集整理)
工具:keytool (windows下路径:%java_home%/bin/keytool.exe)
环境:windows 2008 企业版、tomcat-7.0.27、jdk1.6、ie11、chrome
一、 搭建ca证书服务器
v ca(证书颁发机构)
为了保证网络上信息的传输安全,除了在通信中采用更强的加密算法等措施外,必须建立一种信任及信任验证机制,即通信各方必须有一个可以被验证的标识,这就需要使用数字证书,证书的主体可以是用户、计算机、服务等。证书可以用于多方面,例如web用户身份验证、web服务器身份验证、安全电子邮件等。安装证书确保望上传递信息的机密性、完整性、以及通信双方身份的真实性,从而保障网络应用的安全性。
提示:ca分为两大类,企业ca和独立ca;
v 企业ca的主要特征如下
1)企业ca安装时需要ad(活动目录服务支持),即计算机在活动目录中才可以。
2.当安装企业根时,对于域中的所用计算机,它都将会自动添加到受信任的根证书颁发机构的证书存储区域;
3.必须是域管理员或对ad有写权限的管理员,才能安装企业根ca;
v 独立ca主要以下特征
1.ca安装时不需要ad(活动目录服务)。
2 .默认情况下,发送到独立ca的所有证书申请都被设置为挂起状态,需要管理员受到颁发。这完全出于安全性的考虑,因为证书申请者的凭证还没有被独立ca验证;
在简单介绍完ca的分类后,现在开始安装证书服务;
1. 打开控制面板,选择“程序”–“打开或关闭windows功能”,如下图所示:
2. 左侧选择“角色”,右侧选择“添加角色”,如下图所示:
3. 左侧选择“服务器角色”,勾选“active directory证书服务”和“web服务器(iis)”,然后点击“下一步”,如下图所示:
4. 继续点击下一步,如下图所示:
5. 选择角色服务,勾选“证书颁发机构”和“证书颁发机构web注册”,会弹出“添加角色向导”界面, 点击“添加所需的角色服务”按钮,然后点击“下一步”
6. 在“指定安装类型,“企业”需要域环境,“独立”不需要域环境选择,这里由于没有域,默认选择“独立”,单击“下一步”,如下图所示:
7. 在“指定ca类型”窗口选择“根ca”,单击“下一步”,如下图所示:
8. 在“设置私钥”窗口选择“新建私钥”,单击“下一步”,如下图所示:
如果使用已有私钥,请选择“使用现有私钥”,通过证书或本机现有私钥方式创建
9. 在“为ca配置加密”窗口,选择加密服务提供程序:“rsa#microsoft software key storage privoider”,密钥字符符长度:“2048”,选择此ca颁发的签名证书的哈希算法: sha1,单击“下一步”按钮,如下图所示:
10. 在“配置ca名称”页中,输入此ca的公用名称,单击“下一步”按钮,如下图所示:
11. 在“设置有效期”页中,输入证书有效期,单击“下一步”按钮,如下图所示:
12. 在“配置证书数据库”页中,日志文件的保存位置,单击“下一步”按钮,如下图所示:
13. 在“web服务器简介”页中单击“下一步”按钮,如下图所示:
14. 在“选择角色服务”页中,使用默认web服务器添加的角色服务,单击“下一步”按钮,如下图所示:
15. 单击“安装”,如下图所示:
16. 直至安装完成,点击“关闭”,完成添加角色,如下图所示:
17. 安装结束后,打开浏览器,在地址栏中输入:http://localhost/certsrv/ 打开以下页面,截止到此windows 2008的证书服务,以及证书颁发服务全部安装完毕,ca证书服务器搭建完毕。
二、 向ca证书服务器申请服务器证书
在web服务器上(安装tomcat的服务器)操作系统版本不限制, 安装tomcat需要jdk支持,若已安装请忽略此步骤。jdk1.6默认只支持 sslv3 和 tlsv1 两个版本的https协议,jdk 1.7 版本默认禁用sslv3,并支持 tlsv1、tlsv1.1及tlsv1.2。tomcat 6及以下版本在使用 jdk 1.6及以下版本的运行环境时,可能存在无法禁用 sslv3的情况。此时建议您升级 tomcat 及 jdk版本,或变更使用 apr模块来配置ssl证书,以确保安全方式安装及使用服务器证书(tomcat 及java se development kit (jdk) 下载及安装略)。在“开始”—>“运行”中,输入cmd打开文本命令窗口,将目录切换到jdk或者jre中的bin下面(如c:/java/jre/bin),通过java提供的生成证书的工具keytool进行证书申请操作。
1. 生成web服务器的证书库
在命令控制台中输入命令,生成web服务器的证书存放库:
keytool -genkey -alias server -validity 3650 -keyalg rsa -sigalg sha256withrsa -keysize 2048 -keypass password -storepass password -dname “cn=www.csdn.net, ou=csdn, o=csdn, l=bj, st=bj, c=cn” -keystore d:keystore.jks
说明:
-genkey参数是建立证书库
-alias为别名,这里使用server
-keyalg为指定加密方式,这里使用常用的rsa加密方式
-sigalg 证书算法参数,目前以不推荐sha1withrsa
-keysize 密钥长度,2048位
-keypass 私钥密码
-storepass 密钥库密码
-dname 证书主题信息,其中cn为服务器域名(www.csdn.net)或ip地址(192.168.1.111),ou为部门信息,o为单位信息,l为地市信息,st为省,c为国家(通常为“cn”)
-keystore为指定证书库存放文件
2. 生成向ca证书服务器申请证书的文件
keytool -certreq -keyalg rsa -sigalg sha256withrsa -alias server -file d:server.csr -keystore d:keystore.jks -storepass password -ext san=dns:www.csdn.net
说明:
-certreq声称申请证书文件
-keyalg 指定加密方式
-alias 证书库的别名 这里必须与上一步中建立的正数据名字相同
-file 指定生成的文件文件名称以及路径
-keystore 指定证书库
-ext 证书扩展信息,在此填写证书备用名称,可多个域名或ip地址,用逗号隔开
(如:san=dns:www.csdn.net,dns:mp.csdn.net,ip:192.168.1.111,chrome浏览器如不填会提示警告信息)
3. 向ca申请证书
生成申请证书成功,这时候在jdk/bin目录下存在两个文件keystore.jks和server.csr,keystore.jks为刚才生成的证书库文件,server.csr为向ca认证中心申请证书的申请文件,如果向第三方ca认证中心申请证书,直接提交server.csr文件即可,但目前使用我们自己搭建的ca服务器,而windows提供的注册证书颁发服务没有提供提交文件的入口,故此:使用ue或者editplus等工具打开server.csr文件,将文件中的内容复制出来(仅仅—–begin new certificate request—–和—–end new certificate request—–之间的内容),然后打开浏览器,输入链接地址:http://localhost/certsrv/ 打开ca服务器的申请界面,点击“申请证书”–》“高级证书申请”
点击“使用base64编码的cmc或pkcs #10文件提交一个证书申请……”
出现以下界面
在“保存的申请”输入框中粘贴“server.csr”文件中的内容(仅仅—–begin new certificate request—–和—–end new certificate request—–之间的内容),点击“提交”。
注:如果ca证书服务器搭建时使用的是“企业”根时,到此就结束了可以直接下载证书,但因为搭建ca证书服务器时使用的是“独立”根,所以这里需要去证书服务器手动颁发证书。
切换到ca证书服务器,打开控制面板,选择“管理工具”,找到“证书颁发机构”,打开证书管理器,管理证书的频发,如下图所示:
点击左侧“挂起的申请”,右键右侧的申请,在“所有任务”中选择“颁发”,到此为止证书颁发成功。
然后切换到web服务器,在浏览器中输入刚才申请证书的链接地址去下载证书,注意:这里将要下载2个证书,一个是ca服务器的根证书,一个是网站的ca证书
点击“下载ca证书、证书链或crl”去下载ca服务器的根证书,点击“下载ca证书”
下载ca服务器的“根证书”,另存为ca1.cer
然后回到主页,点击“查看挂起的证书申请的状态”,看一下“保存的申请证书(日期)”日期是否是刚才申请的时间,如果是点击该链接,下载网站(系统)的ca证书
另存为“server.cer”到此,证书申请完毕。
三、 导入服务器证书
1. 查看keystore文件内容
进入jdk安装目录下的bin目录,运行keytool命令查询keystore文件信息。
keytool -list -keystore d:keystore.jks -storepass password
查询到privatekeyentry(或keyentry)属性的私钥别名(alias)为server。记住该别名,在稍后导入服务器证书时需要用到(示例中粗体部分为可自定义部分,可根据实际配置情况相应修改)。
注意,导入证书时,一定要使用生成证书请求文件时生成的keystore.jks文件。keystore.jks文件丢失或生成新的keystore.jks文件,都将无法正确导入您的服务器证书。
2. 导入ca根证书(如果有多张ca证书,则重复执行下面步骤)
keytool -import -alias ca1 -keystore d:keystore.jks -trustcacerts -storepass password -file d:ca1.cer -noprompt
3. 导入服务器证书(一定要注意,必须先成功导入ca根证书,再导入服务器证书)
keytool -import -alias server -keystore d:keystore.jks -trustcacerts -storepass password -keypass password -file d:server.cer
导入服务器证书时,服务器证书的别名必须和私钥别名一致。请留意导入ca证书和导入服务器证书时的提示信息,如果您在导入服务器证书时使用的别名与私钥别名不一致,将提示“认证已添加至keystore中”而不是应有的“认证回复已安装在keystore中”。
证书导入完成,运行keystool命令,再次查看keystore文件内容
keytool -list -keystore d:keystore.jks -storepass password
四、 安装服务器证书
1. 配置tomcat
复制已正确导入认证回复的keystore.jks文件到tomcat安装目录下的conf目录。打开conf目录下的server.xml文件,找到并修改以下内容
<!–
<connector port=”8443″ protocol=”http/1.1″ sslenabled=”true”
maxthreads=”150″ scheme=”https” secure=”true”
clientauth=”false” sslprotocol=”tls” />
ssl访问端口
–>
修改为
<connector port=”443″ protocol=”org.apache.coyote.http11.http11protocol” sslenabled=”true”
maxthreads=”150″ scheme=”https” secure=”true”
clientauth=”false” sslprotocol=”tls”
keystorefile=”/conf/keystore.jks” keystorepass=”password”
truststorefile=”/conf/keystore.jks” truststorepass=”password” />
属性说明:
clientauth:设置是否双向验证,默认为false,设置为true代表双向验证
keystorefile:服务器证书文件路径
keystorepass:服务器证书密码
truststorefile:用来验证客户端证书的根证书,此例中就是服务器证书
truststorepass:根证书密码
默认的ssl访问端口号为443,如果使用其他端口号,则您需要使用https://yourdomain:port的方式来访问您的站点。
2. 访问测试
重启tomcat,访问https://youdomain:port,测试证书的安装。
五、 服务器证书的备份及恢复
在您成功的安装和配置了服务器证书之后,请务必依据下面的操作流程,备份好您的服务器证书,以防证书丢失给您带来不便。
1. 服务器证书的备份
备份服务器证书密钥库文件keystore.jks文件即可完成服务器证书的备份操作。
2. 服务器证书的恢复
请参照服务器证书安装部分,将服务器证书密钥库keystore.jks文件恢复到您的服务器上,并修改配置文件,恢复服务器证书的应用。
六、 客户端证书的管理
有的时候,我们需要实现 tomcat+ssl 双向认证,也就是说,首先,客户端将要认证服务器的安全性,确保访问的是正确的服务器,而非假冒的钓鱼网站;其次,服务器也要认证客户端的安全性,只有那些拥有服务器授权证书的客户端才可以访问。
客户端证书的管理建议使用自信ca,使用简单方便,需要的请到下列地址下载,内含详细操作说明。
1. 密钥备份与导入
为了保障ca密钥一致,需要将windows 2008下配置的ca机构证书(含密钥)导出,步骤如下:
选择私钥和ca证书,选择备份路径,下一步
输入密码,下一步
完成备份
最好将备份文件(xx.p12)并导入的zxca中,就可以使用zxca颁发、管理客户端证书了。
2. 客户端证书的安装
客户端使用的证书为p12格式的文件证书,使用前需要在客户电脑进行导入,参考步骤如下:
1、google chrome浏览器
(1) 进入浏览器设置页面,滑到底部,点击“高级”显示高级设置
(2)点击“证书管理”右边图标
(3)选择“个人”–“导入”,进入证书导入向导
(4)点击下一步
(5)选择导入的证书文件,注意选择“个人信息交换…”或“所有文件…”选择证书即可
(6)输入密码(默认111111),其他默认,下一步
(7)默认选项,下一步
(8)点完成,提示导入成功,安装结束
2. firefox浏览器
(1)选择“菜单”–“选项”,然后“隐私与安全”–“查看证书”–“您的证书”–“导入”
(2)在弹出窗口中选择证书文件,按提示输入证书密码
(3)导入成功,证书列表中显示导入的证书信息