近期公司列出一大堆的东西,其中包括https,啥也不想说,你们是无法理解的苦逼的我的

本文不是双向认证, 双向认证需要让客户端信任自己生成的证书,有点类似登录银行网站的情,如果想知道双向认证的同志可以点击这里

关于https这些通道可以去百度Google其原理,不废话,自动生成秘钥,需要使用jdk自带的命令keytool。关于keytool的使用请查看:这里或者这里,我这里简单的贴一下使用方式

(1)java工具keytool

常用命令:

(注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)

keytool -genkey -alias "tomcat" -keyalg "RSA" -keystore "d:\mykeystore"  -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass "changeit" -storepass -validity 180

参数说明:

-genkey表示要创建一个新的密钥

-dname表示密钥的Distinguished Names,

CN=commonName

OU=organizationUnit

O=organizationName

L=localityName

S=stateName

C=country

Distinguished Names表明了密钥的发行者身份

-keyalg使用加密的算法,这里是RSA

-alias密钥的别名

-keypass私有密钥的密码,这里设置为changeit

-keystore 密钥保存在D:盘目录下的mykeystore文件中

-storepass 存取密码,这里设置为changeit,这个密码提供系统从mykeystore文件中将信息取出

-validity该密钥的有效期为 180天 (默认为90天)

删除

keytool -delete -alias catest -keystore d:\mykeystore

查看

keytool -list -keystore d:\mykeystore

创建证书

1.服务器中生成证书(注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)

keytool -genkey -alias "tomcat" -keyalg "RSA" -keystore "d:\mykeystore " -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"-keypass "changeit" -storepass "changeit"

2.导出证书,由客户端安装:

keytool -export -alias tomcat -keystore d:\mykeystore -file d:\mycerts.cer -storepass "changeit"

3.客户端配置:为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中)

keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts " -file d:\mycerts.cer(这里是证书生成的路径,不是秘钥,而且后续配置的是秘钥而不是这个证书,不要搞混了) -storepass "changeit"

之后可以看到生成了 catest.cer 文件,之后导入用,keytool的操作就完成了.

配置tomcat

如果是在eclipse上面,那么找到eclipse的service(如果不是,找到tomcat下面的server.xml文件),找到server.xml并打开:
配置如下:

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false"
keystoreFile="d:\catest.key(这里是第一步生成的秘钥位置)" keystorePass="zuecun(这里是秘钥的密码)" maxThreads="25" port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"/>

如果还有其他的8443端口直接注释掉

接着找到web.xml(与server.xml在同一个目录下)并打开:

在<welcome-file-list>后面配置:

    <security-constraint>
<web-resource-collection>
<web-resource-name>securedapp</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee><!-- 如果你希望关闭 SSL ,只需要将 CONFIDENTIAL 改为 NONE 即可。 -->
</user-data-constraint>
</security-constraint>

然后启动服务器,直接访问会自动跳转到你配置好的https端口为8443,注意的是,你这里的证书自己创建出来的没有申请,所以会出现不安全的连接,当然这是本地测试嘛,

最后一句就是欢迎各路大神丢砖或提意见,谢谢~~~

eclipse下的tomcat配置https(最简单得配置https)的更多相关文章

  1. 【转】Eclipse下启动tomcat报错:/bin/bootstrap.jar which is referenced by the classpath, does not exist.

    转载地址:http://blog.csdn.net/jnqqls/article/details/8946964 1.错误: 在Eclipse下启动tomcat的时候,报错为:Eclipse下启动to ...

  2. eclipse下的Tomcat安装与web项目 搭建

    Tomcat 安装 环境: win10-64位  apache-tomcat-7.0.57-windows-x64 首先要配置Windows 的环境变量 JAVA_HOME(就是Java的环境变量) ...

  3. Tomcat免安装版的环境变量配置以及Eclipse下的Tomcat配置和测试

    Tomcat是目前比较流行的开源且免费的Web应用服务器,在我的电脑上第一次安装Tomcat,再经过网上教程和自己的摸索后,将这个过程 重新记录下来,以便以后如果忘记了可以随时查看. 注意:首先要明确 ...

  4. eclipse下使用tomcat启动maven项目

    最近学习使用maven,建立了一个maven项目使用eclipse下tomcat启动时报错: 严重: ContainerBase.addChild: start: org.apache.catalin ...

  5. eclipse下启动tomcat出现Setting property 'source' to 'org.eclipse.jst.jee.server: '错误的解决办法

    在eclipse中启动tomcat时出现Setting property 'source' to 'org.eclipse.jst.jee.server:你的站点名'   did not find a ...

  6. linux下JDK,tomcat的安装与环境变量配置

    先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,下载后放在/home目录中,当然其它地方也行. 进入安装目录#cd /home#cp jdk-1_5_0_02-linu ...

  7. mac下的git的安装与简单的配置

    git 本地操作 git 简单介绍 .Git是分布式的SCM,SVN是集中式的 2.Git每一个历史版本号存储完整的文件,SVN存储文件差异 3.Git可离线完毕大部分操作,SVN则相反 4.Git有 ...

  8. eclipse下设置tomcat,修改Java代码不必重启tomcat

    1.本文目的:用tomcat进行web开发时,修改Java代码往往要重启代码,当工程较大启动较慢时,严重影响效率,本文通过eclipse下tomcat开发和发布web程序时,对一些Java代码一般修改 ...

  9. eclipse下的tomcat内存设置大小

    在eclipse中设置,居然可以了, 设置步骤如下: 1.点击eclipse上的debug图标旁边的下拉箭头 2.然后选择Run Configurations, 3.系统弹出设置tomcat配置页面, ...

随机推荐

  1. (二)plist的使用和序列帧动画

    六.plist的使用方法: iOS的程序在安装在手机上以后会把全部资源文件集成在一个文件夹中,这种文件集合称为bundle,对于一般的工程,只有一个bundle,即mainbundle,因此可以通过b ...

  2. 深入认识AsyncTask

    1.概述 在android开发中是采用单线程模型,主线程通常称为UI线程,由于UI线程的操作不是线程安全的,因此android规定有关更新界面的操作必须在主线程中进行,其他线程直接报错. 如果我们把所 ...

  3. LeetCode之“链表”:Reorder List

    题目链接 题目要求: Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You ...

  4. vi/vim下看十六进制文件

    :%!xxd --将当前文本转换为16进制格式. 查看内容是对应的.你可以后面看到对应的字符内容 :%!od --将当前文本转换为16进制格式. :%!xxd -c 12--将当前文本转换为16进制格 ...

  5. 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号

    每个CPU,都有它固定的ID号,ID号就是这个CPU唯一的标识,它可能隐含着CPU的生产日期,版本号,型号等等,那么,在我们的这款友善之臂Tiny4412的板子上,我的这个CPU的ID又是多少呢?从我 ...

  6. HashMap是无序的

    一. 说明 HashMap是基于哈希表Map的实现.设计初衷主要是为了解决键值(key-value)对应关联的,HashMap的优势是可以很快的根据键(key)找到该键对应的值(value),但是我们 ...

  7. 用windbg显示特定进程虚拟地址的方法

    1 必须使用Livekd.exe启动windbg 2 !process PID 3 找到PROCESS对象的地址:PROCADDR 4 找到进程的DirBase 5 r cr3 = DirBase 6 ...

  8. python 内置标准库socketserver模块的思考

    socketserver模块简化了编写网络服务器的任务, 在很大程度上封装了一些操作, 你可以看成是事件驱动型的设计, 这很不错.它定义了两个最基本的类--服务器类 BaseServer, 请求处理类 ...

  9. IOS常用第三方库《转》

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  10. 初识Java——循环语句

    循环语句就是在一定条件下反复执行某一个操作.具体有三种方法实现: 1while循环语句 while语句也称作条件判断语句,它的循环方式为利用一个条件来控制是否要反复执行.语法如下: while(条件语 ...