Tomcat从安装到配置Https SSL证书

为什么要写本文?

今天一个群友在群里问怎么给Tomcat配置SSL,也就是HTTPS,他买的阿里云的服务器,自带公网ip,还找到了免费的SSL证书

既然@我了,我就帮忙搞一搞呗,我就要了一个带sudo的用户,开始了踩坑之路

踩到坑的原因还是因为自己对Linux不够了解,所以记下来,告诫自己戒骄戒躁

安装Tomcat

演示用Centos 7,Tomcat版本8.5.50,需要先安装JDK,这里用的openjdk

下载Tomcat http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz

$ cd ~
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz #下载到家目录
$ tar zxvf apache-tomcat-8.5.50.tar.gz #解压tomcat
$ cd apache-tomcat-8.5.50
$ bin/startup.sh #启动tomcat
$ tail -f logs/catalina.out #查看日志输出

你会发现Linux下tomcat启动特别慢,原因在于Tomcat获取随机数使用/dev/./random在不能产生新的随机数时会阻塞程序,参考Linux中的随机数文件 /dev/random /dev/urandom,知道问题在哪里我们修改一下bin/catalina.sh,使其使用非阻塞的/dev/urandom

vim bin/catalina.sh

在256行附近为JAVA_OPTS添加指定默认随机数-Djava.security.egd=file:/dev/./urandom,保存退出

重启tomcat

$ bin/shutdown.sh
$ bin/startup.sh
$ tail -f logs/catalina.out

这次启动就非常快了

访问<127.0.0.1:8080>或者查看是否正确启动

安装APR

查看启动日志的时候,你可能会发现有个库好像没有找到

The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path

APR用官网的说法是:Tomcat can use the [Apache Portable Runtime](https://apr.apache.org/) to provide superior scalability, performance, and better integration with native server technologies.

简单来说,APR是针对操作系统优化,大幅度提升服务器性能的运行时环境

最简单的解决办法是安装apr-devel,更多细节参考http://tomcat.apache.org/tomcat-8.5-doc/apr.html

$ sudo yum install -y apr-devel

修改Tomcat端口为80

http默认的端口是80,当我们只写ip或域名时会默认访问80端口,配置一下还挺有用的

$ vim conf/server.xml

在69行左右修改8080为80,保存退出

重启tomcat,命令与上边一致,不再赘述

如果你和我一样,使用的也是sudo用户,那么此时你可能要被坑了,“我访问127.0.0.1”怎么没反应啊?

这是因为Linux默认非root用户可直接使用的端口号要大于1024! 我今天就坑在这里好久,之前一直使用root用户一点事没有,这才发现这个问题,改安全组、关防火墙、改配置一把梭没查到问题,改到怀疑人生

配置Https SSL证书

首先从证书颁发机构网站下载证书文件和密码,证书文件后缀.pfx,密码一般是pfx-password.txt,有时使用pfx配置密码会失败,这里就使用转化pfxjks文件

先复制.pfx证书与密码到当前目录,这里放在用户家目录中

转换pfx证书为jks

$ cd ~
$ cat pfx-password.txt #查看密码,这里可以复制一下,马上会用到
$ keytool -importkeystore -srckeystore 你的证书.pfx -destkeystore domains.jks -srcstoretype PKCS12 -deststoretype JKS #这里的domains.jks名称你可以改成别的,只要以.jsk结尾就可以

输入3次密码,粘贴刚才复制的密码即可,ls你会发现domain.jks已经生成

配置Server.xml

$ cp domains.jks ~/apache-tomcat-8.5.50/conf
$ cd ~/apache-tomcat-8.5.50
$ vim conf/server.xml

在大约87行,修改原来的8443为443, protocol可以使用其它高版本协议,详情参考http://tomcat.apache.org/tomcat-8.5-doc/config/http.html#SSL_Support

如图,keystoreFile处填写jks的绝对路径,keystorePass填写证书密码(刚才生成jks时填写的与pfx相同的密码)

    <!-- 开启ssl支持,请注意其它接口转发应修改redirectPort为443 -->
    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
              keystoreFile="/你的目录/apache-tomcat-8.5.50/conf/domains.jks"
              keystorePass="证书密码"
              clientAuth="false" sslProtocol="TLS"
              connectionTimeout="20000" />

修改默认配置的8443为443,使其它端口转发到443端口拥有加密功能

在vim中输入,一般应该成功替换6处(含注释)

:1,$s/8443/443/g

保存退出,重启Tomcat

后续

一般来说看到这里,你的Tomcat应该已经绑上Https证书了

由于这是一次踩坑的记录,再提几嘴可能碰到的问题:

  • ECS服务器由安全组配置入站出站规则,默认入站全禁,出站全开,要注意配置80与443端口入站放行
  • 某些地区的阿里ECS安全组只能使用专用网络,区别于经典网络的公网与内网可单独配置,专用网络安全组默认标灰内网为不可修改,通过查询阿里的文档,发现专用网络安全组配置在公网与内网中均会生效
  • Linux非root用户默认没有1024以下端口使用的权力

原文地址:https://www.cnblogs.com/hellxz/p/12150936.html

时间: 2024-10-04 05:51:52

Tomcat从安装到配置Https SSL证书的相关文章

https(ssl)免费证书申请及nginx配置https(ssl)

首先推荐免费证书的申请url:https://freessl.org/ 然后就是上面证书申请的流程,这里可以参考一篇阿里云里面的博文(我会补充一些细节): https://yq.aliyun.com/articles/225669?spm=5176.10695662.1996646101.searchclickresult.1da01cb9Hyk86J freessl免费证书申请补充: 一.补充一下配置DNS验证的流程,我这里用的是阿里云: 然后点击添加记录 确定 完成,全选,启用一下就可以了:

HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)

这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计应该是这样的:) 概述与设计 nginx安装 nginx基本使用 nginx的配置 tomcat的安装与配置 部署程序 待续 概述与设计 主机使用阿里云主机,配置不高,但前期应该够用,以后有需要的话再升级. 主要的业务逻辑是用java实现,并用tomcat承载,但大家知道tomcat并不适合作为大量的静态资源

转【翻译】如何在Ubuntu 12.04上配置Apache SSL证书

关于SSL证书 SSL证书是加密站点信息和创建一个更安全的连接的一种方式.另外,证书可以向站点访问者展示VPS的身份信息.证书颁发机构颁发SSL证书,用来验证服务器的详细信息,而一个自签名的证书缺乏第三方机构的证明. 设置 以下教程,需要拥有VPS上root权限. 另外,你的虚拟服务器上需要安装并运行有apache.如果没有安装,可以通过以下命令安装: sudo apt-get install apache2 第一步--启用SSL模块 下一步启用SSL sudo a2enmod ssl 紧接着重

Windows7下JDK+Tomcat的安装与配置

Windows7下JDK+Tomcat的安装与配置 2011-04-22 16:48:31|  分类: Windows7 |  标签: |举报 |字号大中小 订阅 今天在装tomcat是遇到了一个很常见的问题,即tomcat可以启动,但是无法访问tomcat主页.在网上查了很久才发现原来是没有开启tomcat服务,所以记下来,希望大家可以通过以下步骤顺利安装tomcat! 一.JDK的安装与配置 1.从官网下载jdk-6u24-windows-i586.exe 网址:https://cds.su

linux下jdk与tomcat的安装与配置

Linux中jdk与tomcat的安装与配置 1.搭建环境: (1)Linux环境:CentOS6.1 (2)jdk-1.8 (3)tomcat-9.0 2.在Linux系统上创建目录 在usr/local/下创建目录java: 命令: mkdir -p /usr/local/java/jdk mkdir -p /usr/local/java/tomcat 3.上传jdk与tomcat压缩包到Linux系统 (1)把jdk上传到刚才创建的jdk目录下 (2)把tomcat上传到创建的tomcat

1、Web容器的理解&amp;Tomcat的安装与配置

Web容器的理解 <Java Web开发实战经典——基础篇>一书中对Web容器这一概念阐述得很好,借用其观点对Web容器加以理解: 想要运行一个Java Web的程序,则必须有相应的Web容器支持,因为所有的动态页面的程序代码都要在Web容器中执行,并将最后生成的结果交付给用户使用. 服务器端使用Web服务插件接受客户端的http请求,并对用户请求加以判断,判断其是动态请求还是静态请求.如果是静态请求,则直接通过Web服务器从文件系统中取得相应的文件,并通过http协议返回到客户端浏览器:如果

solr在tomcat下安装、配置

solr简介 solr是受欢迎的,速度极快的开源企业搜索平台.主要功能包括强大的全文搜索,搜索词高亮显示,分面搜索,近实时的索引,动态聚类,数据库集成,丰富的文件(例如,Word,PDF)处理,和空间搜索.Solr是高度可靠的,可扩展性和容错性,提供了分布式的索引,复制和负载均衡的查询,自动故障转移和恢复,集中配置和更多.许多世界上最大的互联网网站的导航.搜索功能都是采用solr实现的. solr是一个基于Lucene.采用JAVA语言编写.运行于servlet容器中(如jetty,tomcat

JDK+Eclipse+MyEclipse+tomcat的安装与配置

以下我所使用的各软件版本为:JDK(1.6):eclipse(3.2.2):myEclipse(5.5.1GA):tomcat(5.5.12): 一.安装JDK: 下载完JDK(1.6)后双击进行安装,安装过程中所有配置保持默认选项.安装完成后如图: 安装完成后配置JDK环境变量:回到桌面,在“我的电脑”上点右键—>“属性”—>“高级”—> “环境变量(N)”. 新建系统变量JAVA_HOME:C:\Program Files\Java\jdk1.6.0_02; 新建系统变量CLASSP

mac 下JDK 与 tomcat 的安装与配置

一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK,在终端中输入java 或者 javac 显示说明,表明已经安装过JDK,JDK版本查询终端键入java -version,终端会返回JDK的版本号. 2.如果没有安装JDK,登陆 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 选择相应版本下载JDK(Mac 选择Linux)安装. 二.Mac下tomcat的安装与