tomcat9配置https

摘要:
首先,使用以下命令生成密钥库密钥工具genkey alistomcat keyalgRSA。我输入的密钥密码是123456。组织单位名称是您的域名。我将此文件复制到tomcat的conf文件目录中,并在tomcat的server.xml中添加一个连接器,在浏览器中输入https:Others。根据具体情况输入上述命令,生成一对非对称密钥和自签名证书。f: 找到tomcat安装目录:

首先使用以下命令生成密钥库

keytool -genkey -alias tomcat -keyalg RSA

我输入的密钥口令是123456

组织单位名称就是你的域名,我的就是localhost

得到一个.keystore的文件,我把这个文件复制到tomcat的conf文件目录里面

在tomcat的server.xml中添加一个connector,代码如下

复制代码
1 <Connector
2            protocol="org.apache.coyote.http11.Http11NioProtocol"
3            port="8443" maxThreads="200"
4            scheme="https" secure="true" SSLEnabled="true"
5            keystoreFile="conf/.keystore" keystorePass="123456"
6            clientAuth="false" sslProtocol="TLS"/>
复制代码

然后重启tomcat,在浏览器中输入https://localhost:8443就能看到安全连接提示。

转载地址:http://ln-ydc.iteye.com/blog/1330674

内容概览:

如果希望 Tomcat 支持 Https,主要的工作是配置 SSL 协议

  1.生成安全证书

  2.配置tomcat

---------------------------------------------------------------------------------------------------------------------------

预备知识:

sso

cas

ssl

https

ca

---------------------------------------------------------------------------------------------------------------------------

环境:

1.java 1.6

2.tomcat 6_0_26

---------------------------------------------------------------------------------------------------------------------------

生成安全证书:

1.java环境:因为SUN公司提供了制作证书的工具keytool。

      在JDK 1.4以后的版本中都包含了这一工具,它的位置为<JAVA_HOME>inkeytool.exe。

2.创建证书的命令:

Cmd代码  收藏代码
  1. keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f: omcat.keystore"  

参数的意思如下:

tomcat9配置https第4张

这里密码我输的是tomcat,名字与姓氏为域名,其它的根据具体情况输入

tomcat9配置https第5张

以上命令将生产一对非对称密钥和自我签名的证书f: omcat.keystore.

将证书保存到你要存放的地方,我的保存在D:ToolsWebssl omcat.keystore

注意:“名字与姓氏”应该是域名,输成了姓名,和真正运行的时候域名不符,会出问题

---------------------------------------------------------------------------------------------------------------------------

配置tomcat:

定位到tomcat的安装目录,找到conf下的server.xml文件

找到如下已经被注释的代码:

Xml代码  收藏代码
  1. <!--  
  2.     <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
  3.                maxThreads="150" scheme="https" secure="true"  
  4.                clientAuth="false" sslProtocol="TLS" />  
  5.     -->  

去掉注释,修改为:

Xml代码  收藏代码
  1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
  2.               maxThreads="150" scheme="https" secure="true"  
  3.               clientAuth="false" sslProtocol="TLS"   
  4.        keystoreFile="D:ToolsWebssl omcat.keystore"  
  5.        keystorePass="tomcat"  
  6.        ciphers="tomcat"/>  

这里,密码和证书的位置根据个人的具体环境而设置,属性参数如下所述:

属性描述
clientAuth如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证
keystoreFile指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME>(Tomcat安装目录)环境变量 的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。
keystorePass指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。
sslProtocol指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。
ciphers指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。

访问支持ssl的web站点:

启动本场tomcat,在浏览器中输入:https://localhost:8443/ ,这里用ie访问

tomcat9配置https第8张

选择继续浏览此网站

tomcat9配置https第9张

成功!!

遇到的问题:

我在配置的过程中问题,当我修改了server.xml的配置后,启动tomcat报错

java.lang.Exception: No Certificate file specified or invalid file format
at org.apache.tomcat.jni.SSLContext.setCertificate(Native Method)
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:761)
at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:109)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1123)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)

网上找了下,

其实就是将protocol="HTTP/1.1"替换为protocol="org.apache.coyote.http11.Http11Protocol",问题得以解决;

APR给Tomcat的性能提升起到很大作用,建议配置APR方式,这样就可以了

免责声明:文章转载自《tomcat9配置https》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sharding-jdbc2.3 JVM内存参数设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java强制类型转换

在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object.toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。 方法1:采用 Object.toString()方法 请看下面的例子: 1 Obj...

QTablewidget通过代理实现限制输入

QTablewidget代理 之前做过一个QTablewidget想要限制某些单元格只能输入IP,刚开始采用在单元格中添加QLineEdit控件的方法,效果差强人意。后来发现通过QItemDelegate可以很方便实现需求。 QItemDelegate  1 #pragma once 2 #include <QWidget> 3 #inc...

(翻译)Entity Framework技巧系列之九 Tip 35 36

提示35. 怎样实现OfTypeOnly<TEntity>()这样的写法 如果你编写这样LINQ to Entities查询: 1 var results = from c in ctx.Vehicles.OfType<Car>() 2 select c; 这会返回,Cars包括那些派生自Car类型,如...

android开发之shape详解

很多时候,使用shape能够实现的效果,你用一张图片也能够实现,但问题是一张图片无论你怎么压缩,它都不可能比一个xml文件小,因此,为了获得一个高性能的手机App,我们在开发中应该遵循这样一个原则:能够用shape实现的效果尽量不使用图片来实现。 今天我们就一起来看看shape的使用。 首先,使用shape画的图形,这个xml文件的根节点是shape,如下...

vue从一个页面跳转到另一个页面并携带参数

1.需求: 点击商场跳转到商业体列表 解决方案: 元页面: a标签中添加跳转函数 <a class="orderBtn1 sIRicon2" href="javascript:void(0);" @click="toMallInfo('M000989')"><i class="sIRicon"></i>商场<...

linux添加cuda路径到bashrc环境变量

查看linux中存在的cuda版本,进入/usr/local: 添加自己需要的cuda版本到环境变量, vim ~/.bashrc,添加以下内容到最后,如: export PATH=/usr/local/cuda-10.1/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LI...