大家好,搭建证书服务并配置Tomcat SSL服务器证书相信很多的网友都不是很明白,包括也是一样,不过没有关系,接下来就来为大家分享关于搭建证书服务并配置Tomcat SSL服务器证书和的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
1.搭建CA证书服务器
v CA(证书颁发机构)
为了保证网络上信息传输的安全,除了在通信中采用更强的加密算法等措施外,还必须建立信任和信任验证机制,即通信双方必须拥有可验证的身份,需要使用数字证书,证书的主体可以是用户、计算机、服务等。证书的使用方式有很多种,比如Web用户认证、Web服务器认证、安全电子邮件等。安装证书保证传输信息的保密性和完整性,以及通信双方身份的真实性,从而保证网络应用的安全。
提示:CA分为两类,企业CA和独立CA;
v 企业CA的主要特点如下
1)企业CA安装需要AD(Active Directory服务支持),即计算机必须在Active Directory中。
2、企业根安装后,会自动添加到域内所有计算机的受信任根证书颁发机构的证书存储区中;
3、您必须是域管理员或对AD有写权限的管理员才能安装企业根CA;
v 独立CA具有以下主要特点:
1.CA安装不需要AD(Active Directory Service)。
2. 默认情况下,发送到独立CA 的所有证书请求均设置为待处理状态,并需要管理员颁发。这纯粹是出于安全原因,因为证书申请者的凭据尚未经过独立CA 的验证;
简单介绍完CA的分类,我们开始安装证书服务;
1、打开控制面板,选择“程序”-“打开或关闭Windows功能”,如下图:
2、选择左侧“角色”,右侧选择“添加角色”,如下图:
3、选择左侧“服务器角色”,勾选“Active Directory证书服务”和“Web服务器(IIS)”,然后点击“下一步”,如下图:
4、继续点击Next,如下图:
5、选择角色服务,勾选“证书颁发机构”和“证书颁发机构Web注册”,弹出“添加角色向导”界面,点击“添加所需角色服务”按钮,然后点击“下一步”
6、“指定安装类型”中,“企业”需要域环境,“独立”不需要域环境,由于没有域,所以默认选择“独立”,点击“下一步”,如图如下图所示:
7、在“指定CA类型”窗口中选择“根CA”,点击“下一步”,如下图所示:
8、在“设置私钥”窗口中,选择“新建私钥”,点击“下一步”,如下图所示:
如果您使用现有私钥,请选择“使用现有私钥”,通过证书或机器上现有的私钥来创建。
9、在“Configure Encryption for CA”窗口中,选择加密服务提供商:“RSA#Microsoft Software Key Storage Prvoider”,密钥字符长度:“2048”,选择该CA颁发的签名证书的哈希算法:SHA1,点击“下一步”按钮,如下图:
10、在“配置CA名称”页面中,输入该CA的公共名称,点击“下一步”按钮,如下图所示:
11、在“设置有效期”页面中,输入证书有效期,点击“下一步”按钮,如下图所示:
12、在“配置证书数据库”页面,点击保存日志文件的“下一步”按钮,如下图所示:
13、在“Web服务器简介”页面点击“下一步”按钮,如下图:
14、在“选择角色服务”页面中,使用默认Web服务器添加的角色服务,点击“下一步”按钮,如下图所示:
15、点击“安装”,如下图:
16、直至安装完成,点击“关闭”完成角色添加,如下图:
17、安装完成后,打开浏览器,在地址栏输入:http://localhost/certsrv/,打开如下页面。至此,Windows 2008证书服务和证书颁发服务已安装完成,CA证书服务器也已搭建完毕。
2、向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开发工具包(JDK )下载和安装省略)。在“开始”-“运行”中输入cmd打开文本命令窗口,将目录切换到jdk或jre中的bin(如c:/java/jre/bin),通过提供的工具keytool生成证书爪哇。应用操作。
1. 为Web服务器生成证书存储
在命令控制台中输入命令,生成Web服务器的证书存储库:
keytool -genkey -alias 服务器-validity 3650 -keyalg RSA -sigalg SHA256withRSA -keysize 2048 -keypass 密码-storepass 密码-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 密码-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申请证书
单击“使用Base64 编码的CMC 或PKCS #10 文件提交证书请求.”
出现如下界面
将“server.csr”文件的内容粘贴到“Saved Application”输入框中(仅-----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”,证书申请完成。
3.导入服务器证书
1.查看keystore文件内容
进入JDK安装目录下的bin目录,使用keytool命令查询keystore文件信息。
keytool -list -keystore D:\keystore.jks -storepass 密码
发现PrivateKeyEntry(或KeyEntry)属性的私钥别名(alias)是server。记住这个别名,后面导入服务器证书的时候会用到它(示例中粗体部分是可定制部分,可以根据实际配置进行修改)。
需要注意的是,导入证书时,必须使用生成证书请求文件时生成的keystore.jks文件。如果keystore.jks 文件丢失或生成新的keystore.jks 文件,您的服务器证书将无法正确导入。
2.导入CA根证书(如果有多个CA证书,请重复以下步骤)
keytool -import -alias ca1 -keystore D:\keystore.jks -trustcacerts -storepass 密码-file D:\ca1.cer -noprompt
3、导入服务器证书(必须注意的是,必须先成功导入CA根证书,然后再导入服务器证书)
keytool -import -alias server -keystore D:\keystore.jks -trustcacerts -storepass 密码-keypass 密码-file D:\server.cer
导入服务器证书时,服务器证书的别名必须与私钥的别名一致。导入CA证书和服务器证书时请注意提示。如果导入服务器证书时使用的别名与私钥别名不一致,则会提示“证书已添加到密钥库”,而不是应有的“证书回复已安装”。在密钥库中”。
证书导入完成后,再次运行keystool命令,查看keystore文件内容。
keytool -list -keystore D:\keystore.jks -storepass 密码
4.安装服务器证书
1.配置Tomcat
修改为
maxThreads='150' 方案='https' 安全='true'
clientAuth='假' sslProtocol='TLS'
keystoreFile='/conf/keystore.jks' keystorePass='密码'
truststoreFile='/conf/keystore.jks' truststorePass='密码' /
属性说明:clientAuth:设置是否进行双向验证。默认为false。设置为true 表示双向验证。 keystoreFile: 服务器证书文件路径keystorePass: 服务器证书密码truststoreFile: 用于验证客户端证书的根证书。在此示例中,它是服务器证书truststorePass: 根证书密码。
默认SSL访问端口号为443,如果您使用其他端口号,则需要使用https://yourdomain:port来访问您的站点。 2、接入测试
重启Tomcat,访问https://youdomain:端口,测试证书安装情况。
5、服务器证书的备份与恢复
当您成功安装并配置服务器证书后,请务必按照以下操作流程备份您的服务器证书,以免证书丢失给您带来不便。
1.服务器证书备份
备份服务器证书密钥库文件keystore.jks文件,完成服务器证书备份操作。
2.服务器证书恢复
请参考服务器证书安装部分将服务器证书密钥库keystore.jks文件恢复到您的服务器上,并修改配置文件恢复服务器证书的应用。
6. 客户端证书的管理
有时,我们需要实现TOMCAT+SSL双向认证。也就是说,首先客户端会验证服务器的安全性,确保访问的是正确的服务器,而不是假冒的钓鱼网站;其次,服务器还必须对客户端进行身份验证。端到端安全,只有拥有服务器授权证书的客户端才能访问。
建议使用Confident CA进行客户端证书管理。使用简单方便。如有需要,请从以下地址下载,其中包含详细的操作说明。
https://pan.baidu.com/s/1_bpuWRrmd8WEFwCdYr58Kg
1.密钥备份与导入
为了保证CA密钥一致,需要导出Windows 2008下配置的CA颁发机构证书(包括密钥)。步骤如下:
选择私钥和CA证书,选择备份路径,下一步
输入密码,下一步
完整备份
最好将备份文件(xx.p12)导入到ZXCA中,然后就可以使用ZXCA来颁发和管理客户端证书了。
2.安装客户端证书
客户端使用的证书是p12格式的文件证书。使用前需要将其导入到客户端计算机上。参考步骤如下:
1.谷歌Chrome浏览器
(1)进入浏览器设置页面,滑动至底部,点击“高级”,显示高级设置
(2)点击“证书管理”右侧图标
(3)选择“个人”--“导入”,进入证书导入向导
(4)点击下一步
(5)选择导入的证书文件,注意选择“个人信息交换.”或“所有文件.”来选择证书。
(6)输入密码(默认111111),其他默认,下一步
(7)默认选项,下一步
(8)点击完成,会提示导入成功,安装完成。
2.火狐浏览器
(1) 选择“菜单”--“选项”,然后选择“隐私和安全”--“查看证书”--“您的证书”--“导入”
(2) 在弹出的窗口中选择证书文件,根据提示输入证书密码。
用户评论
终于搞定了!这篇文档讲解得很清晰,跟着步骤一步步操作,居然真的成功了!之前我一直在折腾这个证书问题,浪费了好几个小时,还好遇到这篇文章
有18位网友表示赞同!
分享一个经验,如果出现证书无效的错误,记得检查一下端口号是不是正确配置。 刚开始我也是因为这个问题卡了一段时间...
有6位网友表示赞同!
对于新手来说真是太棒了!从搭建证书服务到配置Tomcat SSL证书,都详细解释得很清楚,完全可以按照步骤一步完成。以前一直没尝试过SSL加密,现在终于有机会学习了
有9位网友表示赞同!
这篇文章还蛮全面的,包含了各种常见问题以及解决方案,特别是关于证书的续约和管理部分,非常有用!感谢作者分享
有5位网友表示赞同!
Tomcat SSL证书配置确实比较复杂,需要一定的网络基础知识才能理解。不过这篇文档写得比较通俗易懂,也能帮助我理清思路!
有13位网友表示赞同!
最近也在学习SSL加密技术,这篇文章太及时了!尤其对搭建证书服务这一部分不太了解,这篇文档讲解得很到位可以参考一下
有9位网友表示赞同!
我觉得代码段和截图还是比文字描述更直观易懂啊。如果能更注重这些方面就更好了
有14位网友表示赞同!
这个步骤讲得有点太浅了,对一些基础知识没有交代清楚,导致我理解起来比较困难!希望作者能够添加一些讲解
有9位网友表示赞同!
证书服务搭建的部分可以多提供一些常用的工具和平台介绍,这样对于新手读者来说会更加实用!
有13位网友表示赞同!
能不能简单提一下不同类型的SSL证书有什么区别呢?这篇文档主要针对的是哪种类型的SSL证书配置?
有19位网友表示赞同!
文章整体逻辑清晰,但缺乏一些实例演示,如果能提供一些实战案例,对理解更深层次的知识更有帮助!
有19位网友表示赞同!
搭建证书服务和配置Tomcat SSL证书都需要一定的实践经验,这篇文档作为一个入门指南还是不错的,但是要全面掌握这个领域的知识需要多加练习!
有9位网友表示赞同!
对于web开发小白来说,证书服务和SSL加密的概念有点抽象,希望文章能够用更通俗易懂的语言讲解这些概念!
有15位网友表示赞同!
这篇文章没有提到一些常见的问题解决方法,例如:如果出现证书自动过期怎么办?这部分内容缺失了
有6位网友表示赞同!
安装SSL证书需要一定的运维经验,这篇文档中对这个部分的描述比较简单,需要补充一些更详细的操作步骤!
有7位网友表示赞同!
我觉得这篇文章偏重于理论讲解,缺少了一些实战案例,对于想要快速上手的人来说不够实用。
有18位网友表示赞同!
文章缺乏针对性,没有明确说明适用哪些类型的网站或应用,对一些特定的场景的配置方法也没有解释!
有20位网友表示赞同!
这篇文章写得比较罗嗦,有些地方重复描述了同一个概念,信息密度比较低!
有6位网友表示赞同!