仅供备忘。
在 Tomcat 5.0 中启用 HTTPS 的连接。
重要提示:两种容易出错的情况
1、keystore的密码与tomcat的主密码不一致;在接下来的步骤中,请把这两个密码输入成相同的;
2、用来生成keystore的java版本与运行tomcat的java版本不一致;运行下面的命令之前,先检查一下。
wakan@wakan:~/tomcat2/bin>which java
/home/jdk150/bin/java
在启动tomcat时,看看所用的JAVA_HOME是不是上面的/home/jdk150,如果不是,请修改用户的profile文件,或者修改tomcat的启动文件。
最简单的做法是在/etc/profile文件中加入下面几行,然后重新登录,再进行后续操作:
JAVA_HOME=/home/jdk150
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
一、生成 KeyStore
这一步比较简单,利用 JDK 自带的 keytool 即可完成。命令如下:
wakan@wakan:~/tomcat2/bin>
keytool -genkey -alias tomcat -keyalg RSA
输入keystore密码: ************
您的名字与姓氏是什么?
[Unknown]: aaa
您的组织单位名称是什么?
[Unknown]: bbb
您的组织名称是什么?
[Unknown]: ccc
您所在的城市或区域名称是什么?
[Unknown]: BeiJing
您所在的州或省份名称是什么?
[Unknown]: BeiJing
该单位的两字母国家代码是什么
[Unknown]: CN
CN=aaa, OU=bbb, O=ccc, L=BeiJing, ST=BeiJing, C=CN 正确吗?
[否]: 是
输入<tomcat>的主密码
(如果和 keystore 密码相同,按回车):
特别说明:上边输入的“<tomcat>的主密码”,与keystore密码一定要相同,否则TOMCAT起不来。至少我试了几次都不行。报错如下:
2007-3-26 17:07:01 org.apache.coyote.http11.Http11BaseProtocol init
严重: Error initializing endpoint
java.io.IOException: Cannot recover key
at org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.init(JSSE14Socket Factory.java:125)
二、修改 server.xml
在 TOMCAT/conf/server.xml 中,修改与 SSL 相关的那一段,我改成下面这样:
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100"
scheme="https" secure="true" keystorePass="******"
clientAuth="false" sslProtocol="TLS" />
这里要指定keystorePass,如果写错了,会出现下边的错误:
严重: Error initializing endpoint
java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:768)
三、启动 Tomcat
这一步比较简单,就不多说了。启动完成后,在浏览器中输入:
https://localhost:8443,即可看到TOMCAT的主页面。
wakan@wakan:~/tomcat2/bin> ./startup.sh
Using CATALINA_BASE: /home/wakan/tomcat2
Using CATALINA_HOME: /home/wakan/tomcat2
Using CATALINA_TMPDIR: /home/wakan/tomcat2/temp
Using JRE_HOME: /home/jdk150/jre
2007-3-26 17:09:39 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
利用keytool产生自签证书的步骤2如下:
第一步,用-genkey命令选项,产生公私密钥对。在控制台界面输入:keytool -genkey -alias testkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA。这里的-alias表示使用这对公私密钥产生新的keystore入口的别名(keystore是用来存放管理密钥对和证书链的,缺省位置是在使用者主目录下,以.keystore为名的隐藏文件,当然也可指定某个路径存放.keystore文件);-keyalg是产生公私钥对所用的算法,这里是RSA;-keysize定义密钥的长度;-sigalg是签名算法,选择MD5withRSA,即用RSA签名,然后用MD5哈希算法摘要。接下来,系统会提示进行一些输入:
输入keystore密码: abc123
您的名字与姓氏是什么?
[Unknown]: Li
您的组织单位名称是什么?
[Unknown]: InfosecLab
您的组织名称是什么?
[Unknown]: InfosecLab Group
您所在的城市或区域名称是什么?
[Unknown]: Beijing
您所在的州或省份名称是什么?
[Unknown]: Beijing
该单位的两字母国家代码是什么
[Unknown]: CN
CN=Li, OU=InfosecLab, O=InfosecLab Group, L=Beijing, ST=Beijing, C=CN 正确吗?
[否]: y
输入 <testkeypair>的主密码 (如果和 keystore 密码相同,按回车):
第二步,产生自签证书,输入以下命令:
keytool -selfcert -alias testkeypair -dname "CN=Li, OU=InfosecLab, O=InfosecLab
Group, L=Beijing, ST=Beijing, C=CN"
输入keystore密码: abc123
第三步,导出自签证书,由上面两步产生的证书,已经存放在以“testkeypair”为别名的keystore入口了,如果使用其文件,必须导出证书。输入:
keytool -export -rfc -alias testkeypair -file mycert.crt
输入keystore密码: abc123
保存在文件中的认证 <mycert.crt>
这样,就得到了一个自签的证书mycert.crt。注意,选项rfc是把证书输出为RFC1421定义的、用Base64最终编码的格式。
分享到:
相关推荐
tomcat开发环境配置启用https 使用jdk自带的keytool工具制作证书
对docker+gitlab运行...可选启动http/https/ssh。 https中,ssl证书,请自行准备。 这个配置没有启用redis,一些端口都是走默认端口,请注意。 docker的运行配置放在另一个.sh文件中,使用docker用户运行即可。
在tomcat中实现https安全连接的方法
JAVA ldap AD 域 免证书 查询 修改 删除 新增 启用 禁用 修改密码
Tomcat6开启SSL配置的详细说明,及服务器生成证书
Tomcat系统加固规范V0.2
介绍Ad域服务器证书如何申请,如何导出,如何导入到java秘钥库,地址:https://blog.csdn.net/hc1017/article/details/81293323 实现ssl 修改ad用户密码,禁用启用用户。有两个demo测试文
1、修改tomcat下的Conf/web.xml文件,在该文件内容中新增以下配置,注意,若该web.xml中存在其它filter,则需要将该filter放在所有filter前面; <filter-name>CorsFilter</filter-name> <filter-class>org....
java 调用https发布的webservice接口实例及axis包及详细说明
在tomcat下的conf里的web.xml中增加以下过滤器 <filter-name>httpHeaderSecurity</filter-name> <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> <async-supported>true</...
C#(VB.NET)操作Windows自带的防火墙 之 启用(开启)/禁用(关闭)防火墙
respeaker_python_library, 使用 python 和ReSpeaker构建启用语音的对象/应用程序 ReSpeaker python-库 ReSpeaker 是一个开放项目,用于创建启用语音的对象。 ReSpeaker python 库是一个开源 python 库,提
toamcat如何启用8443端口,配置程https访问
2、在 tomcat 的 conf 目录下创建两个文件 workers.properties,uriworkermap.properties Workers.properties 文件的内容: workers.tomcat_home=D:\ProgramFiles\Tomca7 workers.java_home=D:\ProgramFiles\Java\...
Linux-安装和启用firefox浏览器的java.docx
引入java包后,可以直接调用,如:Registry.getProxy(),返回值如:192.168.0.146:80 代码示例: import com.ice.jni.registry.RegDWordValue; import com.ice.jni.registry.Registry; import ...
最简单的方法,直接用java里的keytool工具生成一个keystore文件,然后直接用这个文件启用https就可以了。 方法如下: 命令行执行%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA 执行过程中会询问你一些...
单机模式部署 一、Jdk安装 命令:sudo apt-get install openjdk-6-jdk ...启用SSH KEY:cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys sudo /etc/init.d/ssh reload 验证SSH的配置:ssh localhost
httpkit一个精巧的java版http服务器,可替代tomcat,jetty,80ms极速启动。精巧,独立,占用资源少,80ms极速启动,可替代tomcat内置风控处理,防瞬时并发量过大崩溃可以独立jar包方式运行,轻巧快速可与nginx完美...
SpringBoot 启用Https,本人亲自实践亲自整理的文档。