tomcat服务器下构建https类型网站

一、什么是https

HTTP就是我们平时浏览网页时候使用的一种协议,HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。
为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。
SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,之后IETF对SSL 3.0进行了升级,于是出现了TLS(Transport Layer Security)1.0,定义在RFC 2246。

HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。

相关链接

www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html

blog.csdn.net/clh604/article/details/22179907

二、几个关键字

TLS:传输层安全协议 Transport Layer Security的缩写

SSL:安全套接字层 Secure Socket Layer的缩写
   TLS与SSL对于不是专业搞安全的开发人员来讲,可以认为是差不多的,这二者是并列关系
KEY 通常指私钥。

CSR 是Certificate Signing Request的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。

CRT 即 certificate的缩写,即证书。
X.509 是一种证书格式.对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是包含有关用户或设备及其相应公钥的信息。

X.509的证书文件,一般以.crt结尾,根据该文件的内容编码格式,可以分为以下二种格式:
1、PEM - Privacy Enhanced Mail,查看格式,以"-----BEGIN..."开头, "-----END..."结尾,内容是BASE64编码.
Apache和*NIX服务器偏向于使用这种编码格式.
2、DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.
Java和Windows服务器偏向于使用这种编码格式
相关链接www.cnblogs.com/yjmyzz/p/openssl-tutorial.html

三、证书的获取

证书之间是可以相互转换的

可以到阿里云上获取免费的证书,注意证书的域名绑定要正确,等待证书的审核,已经签发之后将证书下载,要对应所使用的服务器



这个是对应tomcat服务器下载下来的证书


可以按照阿里云的教程,将pfx转换成jks格式,或者可以使用在线工具用pem和key生成jks

在线工具:https://www.trustasia.com/tools-cert-converter


从生成的jks导出crt证书
keytool -export -file (证书crt存放的路径) -alias (别名) -keystore (jks的路径)
回车后输入之前的填写的密码
如果提示:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
那么请输入密码:changeit


四、对于java中如果使用 HttpClient 访问https 可以使用以下命令导入到jre中作为信任证书

相关链接www.2cto.com/os/201506/408625.html
找到安装jdk的路径,在这个文件夹下,这是linux下的jdk路径:/opt/jdk1.8.0_91/jre/lib/security   里面有一个cacerts,要用到
相关链接www.willrey.com/support/keytool_command.html
查看里面的证书,每个证书对应一个昵称
keytool -list -keystore cacerts   
enter keystore password:changeit(通用密码,都有用)
导入证书
keytool -import -keystore cacerts -file (证书crt存放路径) -alias (昵称)
删除证书
keytool -delete -keystore cacerts -alias (昵称)根据昵称删除里面对应的证书


五、配置tomcat服务器

相关链接freessl.wosign.com/guide

Tomcat 8.5 之前版本



Tomcat 8.5 之后版本


注意

1、如果是部署在云服务器上的网站,最好是html5的网页类型,而且里面不能有http的链接
        2、查看防火墙是否对外开放了443端口(我使用的系统是CentOS 7.2 64位,可能防火墙方面的指令和其他版本有区别,在此声明下)

    1 :NSS和SSL常见错误码:

相关链接:www-archive.mozilla.org/projects/security/pki/nss/ref/ssl/sslerr.html(此处可能会在使用curl命令时有用到)
    2 :ifconfig 命令用来查看和配置网络设备。
    3 :查看防火墙状态 ,在bin目录下运行systemctl status firewalld
    4 :获取防火墙相关指令帮助 firewall -cmd --help
    5 :对外开放443端口 firewall-cmd --add-port=443/tcp --permanent
    6 :重启防火墙systemctl restart firewalld
    7 :在tomcat安装目录bin下关闭tomcat:./shutdown.sh    启动tomcat:./startup.sh
    8 :查看tomcat服务是否开启:ps -ef|grep tomcat   杀掉线程:kill -9 (线程)
    9 :netstat -ntpl 和 netstat -ano|grep LISTEN 查看端口状态,都可以试试
   10:curl -v https://www.baidu.com获取网页信息

参考链接:

http://www.2cto.com/os/201506/408625.html

https://linux.cn/article-3807-1.html

https://bugzilla.redhat.com/show_bug.cgi?id=1185708

http://blog.sina.com.cn/s/blog_6b5b4a480101gajz.html

https://www.qcloud.com/document/product/400/4143#4.-tomcat-.E8.AF.81.E4.B9.A6.E9.83.A8.E7.BD.B2

http://www.cnblogs.com/zery/p/5164795.html

http://lixor.iteye.com/blog/1532655

这是我写的第一篇博客,结合自己在实际配置过程中遇到的问题做的总结,肯定存在一些错误,欢迎大家批评指正!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值