设为首页 收藏本站
查看: 670|回复: 0

[经验分享] Tomcat配置https访问

[复制链接]

尚未签到

发表于 2018-12-1 12:26:48 | 显示全部楼层 |阅读模式
Tomcat配置https访问

1、概念简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。
HTTP 超文本传输协议(HTTPHyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
2、HTTPS和HTTP的区别
  1HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。
  2HTTPS 协议需要到 CA 申请证书,一般免费证书很少,需要交费。
  3HTTP HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443
  4HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。
3、Tomcat实现HTTPS步骤大纲
  1、添加域名解析:到自己的域名解析商处,添加一条A记录指向你的服务器IP即可。
  2、申请证书:使用刚才添加的域名申请一个SSL证书;
  3、上传证书到tomcat服务器:在tomcat目录新建一个ssl目录,将证书文件上传到这个目录;
  4、修改server.xmlvim打开server.xml,添加ssl连接器
  5、修改HOST配置
  6、重启Tomcat服务
  7、查询端口是否监听
  8、测试访问
4、配置tomcat实现https访问
  主机IP192.168.10.10
  系统版本:centos7.2
  tomcat版本:tomcat 8.5.8
4.1、使用jdk自带的keytool工具生成证书
证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;这里由于是演示所以就自己用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供商去购买。
  JDK自带的keytool工具生成证书方法如下:
4.1.1、keystore的生成方法1(分阶段生成)
  keytool -genkey -alias tomcat(别名) -keypass tomcat(别名密码) -keyalg RSA(算法) -keysize 1024(密钥长度) -validity 365(有效期,天单位) -keystore    /usr/local/tomcat/ssl/tomcat.keystore (指定生成证书的位置和证书名称) -storepass 123456(获取keystore信息的密码)  -deststoretype pkcs12(指定证书格式)
  回车输入相关信息即可;
4.1.2、keystore的生成方法2(一次性生成)
  keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore  /u.ksr.keystore -storepass 123456 -dname ".keystore -storepass 123456 -deststoretype pkcs12(指定证书格式) -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份., C=(单位的两字母国家代码)";(中英文即可)
[root@master ~]# keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore  /usr/local/tomcat/ssl/tomcat.keystore -storepass 123456 -deststoretype pkcs12 -dname "CN=(tomcat), OU=(tomcat), O=(tomcat), L=(beijing), ST=(beijing), C=(cn)"
4.1.3、keystore信息的查看
[root@master ~]# keytool -list  -v -keystore /usr/local/tomcat/ssl/tomcat.keystore -storepass 123456
密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: tomcat
创建日期: 2018-8-15
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=(tomcat), OU=(tomcat), O=(tomcat), L=(beijing), ST=(beijing), C=(cn)
发布者: CN=(tomcat), OU=(tomcat), O=(tomcat), L=(beijing), ST=(beijing), C=(cn)
序列号: 346aa6a
有效期为 Wed Aug 15 22:40:05 CST 2018 Thu Aug 15 22:40:05 CST 2019
证书指纹:
          MD5:  F0:5D:20:97:04:E0:3D:C2:40:FC:40:17:F3:48:E3:36
          SHA1: 6D:C8:0B:A9:76:5D:03:20:4D:A4:CD:6F:F5:93:E2:5D:A0:B4:3A:76
          SHA256: 46:F1:F8:BB:7E:AF:C5:55:BE:82:65:D2:3C:1A:95:1A:A3:4C:15:28:4D:EC:10:D7:D1:DE:4D:4F:6D:3B:B6:9F
签名算法名称: SHA256withRSA
主体公共密钥算法: 1024 RSA 密钥
版本: 3

缺省情况下,-list 命令打印证书的 MD5 指纹。而如果指定了 -v 选项,将以可读格式打印证书,如果指定了 -rfc 选项,将以可打印的编码格式输出证书。
[root@master ~]# keytool -list  -rfc -keystore /usr/local/tomcat/ssl/tomcat.keystore -storepass 123456
密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: tomcat
创建日期: 2018-8-15
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
-----BEGIN CERTIFICATE-----
MIICejCCAeOgAwIBAgIEA0aqajANBgkqhkiG9w0BAQsFADBwMQ0wCwYDVQQGEwQo
Y24pMRIwEAYDVQQIEwkoYmVpamluZykxEjAQBgNVBAcTCShiZWlqaW5nKTERMA8G
A1UEChMIKHRvbWNhdCkxETAPBgNVBAsTCCh0b21jYXQpMREwDwYDVQQDEwgodG9t
Y2F0KTAeFw0xODA4MTUxNDQwMDVaFw0xOTA4MTUxNDQwMDVaMHAxDTALBgNVBAYT
BChjbikxEjAQBgNVBAgTCShiZWlqaW5nKTESMBAGA1UEBxMJKGJlaWppbmcpMREw
DwYDVQQKEwgodG9tY2F0KTERMA8GA1UECxMIKHRvbWNhdCkxETAPBgNVBAMTCCh0
b21jYXQpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdo4jFF69gWQPzvCZl
E520LdQH51aCbTIAAZxHyAnuI2eI5MH+PepK9hWLpaUZ7ldS9IRb3ECG2K2DIzP7
QwM1QyRqHgCQ8jaVhU6oLa7SS9sAlG8Sq+xTbu9EcJhsV/0BTAg2aGKh/+1yIkAA
Vevl0cjhH7RfyicOMWCu2YbnlQIDAQABoyEwHzAdBgNVHQ4EFgQUfViJoJUJec0N
WlZpNavfTk9rmo4wDQYJKoZIhvcNAQELBQADgYEACksq/r+TsIc4DlKxed9FWuqx
YQOtbeFTZmGQbyPQ7CbsAanT4QJbKkNsL/GUSFcG9IswZDPUiWRC1/Tac5jMO19i
YXcDdeABdiSCw8aFrAyy6kkW1371HoDaJ1kEzRTqNmycyMMbuTbkmN2ImzQl0Gro
vMGIcDG4rCgnoMQUNv0=
-----END CERTIFICATE-----
*******************************************
*******************************************
4.2、keytool工具介绍
  -genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias       产生别名
-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中)
-keyalg      指定密钥的算法 (如 RSA  DSA(如果不指定默认采用DSA))
-validity    指定创建的证书有效期多少天
-keysize     指定密钥长度
-storepass   指定密钥库的密码(获取keystore信息所需的密码)
-keypass     指定别名条目的密码(私钥的密码)
-dname       指定证书拥有者信息
  -list        显示密钥库中的证书信息      keytool -list -v -keystore 指定keystore -storepass 密码
-export      将别名指定的证书导出到文件
  -file        参数指定导出到文件的文件名
-delete      删除密钥库中某条目
  -printcert   查看导出的证书信息  
-keypasswd   修改密钥库中指定条目口令
  -storepasswd  修改keystore口令
  -import          将已签名数字证书导入密钥库
  -certreq            生成证书请求
  -changealias        更改条目的别名
  -delete             删除条目
  -exportcert         导出证书
  -genkeypair         生成密钥对
  -genseckey          生成密钥
  -gencert            根据证书请求生成证书
  -importcert         导入证书或证书链
  -importpass         导入口令
  -importkeystore     从其他密钥库导入一个或所有条目
  -keypasswd          更改条目的密钥口令
  -list               列出密钥库中的条目
  -printcert          打印证书内容
  -printcertreq       打印证书请求的内容
  -printcrl           打印 CRL 文件的内容
  -storepasswd        更改密钥库的存储口令
  keytool -importkeystore [OPTION]...
  从其他密钥库导入一个或所有条目
  -srckeystore             源密钥库名称
  -destkeystore           目标密钥库名称
  -srcstoretype           源密钥库类型
  -deststoretype         目标密钥库类型
  -srcstorepass                    源密钥库口令
  -deststorepass                   目标密钥库口令
  -srcprotected                         受保护的源密钥库口令
  -srcprovidername     源密钥库提供方名称
  -destprovidername   目标密钥库提供方名称
  -srcalias                   源别名
  -destalias                 目标别名
  -srckeypass                      源密钥口令
  -destkeypass                     目标密钥口令
  -noprompt                             不提示
  -providerclass         提供方类名
  -providerarg                     提供方参数
  -providerpath               提供方类路径
  -v            显示密钥库中的证书详细信息
4.3、修改tomcat配置文件server.xml
  修改配置文件server.xml端口8443443,并添加证书文件信息,修改见下面标注部分
[root@master ~]# vim /usr/local/tomcat/conf/server.xml

   
      
   

…………………………………………………..
   
将这里的localhost修改为添加解析的域名即可,且必须与证书的通用名称保持一致
  说明:certificateKeystoreFile 证书文件存放位置
  certificateKeystoreType 证书文件类型
  certificateKeystorePassword  证书的密码
4.4、重启tomcat服务并查看端口
[root@master ~]# catalina.sh stop
[root@master ~]# catalina.sh start
[root@master ~]# ss -ant|egrep "443|80"
LISTEN     0      100         :::8009                    :::*                  
LISTEN     0      100         :::8080                    :::*                  
LISTEN     0      100         :::443                     :::*      
4.5、浏览器测试
  浏览器输入地址:https://192.168.10.10


  可以看到我们的https配置完成,下面我们配置http自动跳转到https
5、配置HTTP自动跳转到HTTPS
上面我们实现了HTTPS访问,但是客户使用http访问,还是会走http协议,依然是不安全的,没有达到我们的需求,下面配置HTTP自动跳转到HTTPS
5.1、修改web.xml文件
  web.xml文件中后面,也就是倒数第二行里,加上如下配置:

   
    CLIENT-CERT
    Client Cert Users-only Area
   
   
   
   
    SSL
    /*
   
   
    CONFIDENTIAL
   
   
5.2、修改sever.xml文件
  修改非SSL连接器的请求跳转到SSL连接器上,修改如下配置:
原来为:
   
修改为:
   
  1、将默认8080端口修改为80端口,访问时就不需要加8080端口了,因为HTTP协议默认走的是80端口
  2、将8443端口修改为443端口,意思是来自80端口的请求都跳转至443端口
5.3、重启tomcat服务并查看端口
[root@master ~]# catalina.sh stop
[root@master ~]# catalina.sh start
[root@master ~]# ss -ant|egrep "80|443"
LISTEN     0      100         :::8009                    :::*                  
LISTEN     0      100         :::80                      :::*                  
LISTEN     0      100         :::443                     :::*        
5.4、使用Linux中的curl命令测试
  这里在Linux中展示跳转更为直观。
[root@master ~]# curl -I http://192.168.10.10
HTTP/1.1 302
Cache-Control: private
Expires: Thu, 01 Jan 1970 08:00:00 CST
Location: https://192.168.10.10/
Transfer-Encoding: chunked
Date: Wed, 15 Aug 2018 16:38:51 GMT
  到这里,Tomcat配置HTTP自动跳转HTTPS就已经完成了




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641965-1-1.html 上篇帖子: Tomcat搭建jpress网站 下篇帖子: TOMCAT 之 文件目录结构理解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表