文档章节

Apache利用JDK自身keytool实现HTTPS

SAMZONG
 SAMZONG
发布于 2017/04/23 22:56
字数 668
阅读 47
收藏 0

   因为一个偶然机会,想把自己的webserver通过https加密访问,这里就采用JDK自带的keytool工具实现,tomcat官方也推荐这种方式,英文好的同学走这里:https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

   实验环境:

    os: centos 6.6 x86_64

     tomcat: tomcat7(tomcat6 too)

     jdk: 1.7,1.6(只要有keytool就行)


    首先,你的tomcat环境是可以正常运行的,这个不在这里的讨论范围之内。

    1.生成 keystore

[root@test conf]# keytool -genkey -v -alias tomcat -keyalg RSA -keystore mykeystore
Enter keystore password:              #设置密码
Re-enter new password:                #重复一次
What is your first and last name?
  [Unknown]:  Alex Lu                #随便填
What is the name of your organizational unit?
  [Unknown]:  visionet                #随便填
What is the name of your organization?
  [Unknown]:  visionet                #随便填
What is the name of your City or Locality?
  [Unknown]:  SH                #随便填
What is the name of your State or Province?
  [Unknown]:  SH                #随便填
What is the two-letter country code for this unit?
  [Unknown]:  ZH                #随便填
Is CN=Alex Lu, OU=visionet, O=visionet, L=SH, ST=SH, C=ZH correct?
  [no]:  Y                    #这里要Y,确认前面信息。

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 90 days
	for: CN=Alex Lu, OU=visionet, O=visionet, L=SH, ST=SH, C=ZH
Enter key password for <tomcat>
	(RETURN if same as keystore password):        #默认回车即可,不需要设置太多密码
[Storing mykeystore]
[root@test conf]# ls
Catalina  catalina.policy  catalina.properties  context.xml  logging.properties  mykeystore  server.xml  tomcat-users.xml  web.xml

   注意:-keystore是用来指定keystore保存位置,如果不加参数默认保存的当前用户家目录为~/.keystore

       -validity 可以用来指定证书有效期,单位为天,缺省值为90天。

    

    2.备份$tomcatdir/conf/server.xml To $tomcatdir/conf/server.xml.bak

cp $tomcatdir/conf/server.xml $tomcatdir/conf/server.xml

    3.修改server.xml

        a.注释一下:(tomcat注释用:<!-- XXXX   --> ) ###如何也想保留http访问,可以不注释

<!--
<Connector executor="tomcatThreadPool"
                port="80" protocol="HTTP/1.1" 
                connectionTimeout="20000" 
                redirectPort="8443" />
-->

        b.取消下面注释

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
                clientAuth="false" sslProtocol="TLS" />

        c.增加keystoreFile和keystorePass

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="conf/mykeystore" keystorePass="123456"/>

        keystoreFile=跟keystore文件位置

        keystorePass=跟当时keytool命令执行时输入的密码


    4. 重启tomcat

[root@test conf]# ../bin/catalina.sh stop && ../bin/catalina.sh start 
Using CATALINA_BASE:   /home/pms/apache-tomcat-6.0.44
Using CATALINA_HOME:   /home/pms/apache-tomcat-6.0.44
Using CATALINA_TMPDIR: /home/pms/apache-tomcat-6.0.44/temp
Using JRE_HOME:        /home/pms/jdk1.7.0_65
Using CLASSPATH:       /home/pms/apache-tomcat-6.0.44/bin/bootstrap.jar
Using CATALINA_BASE:   /home/pms/apache-tomcat-6.0.44
Using CATALINA_HOME:   /home/pms/apache-tomcat-6.0.44
Using CATALINA_TMPDIR: /home/pms/apache-tomcat-6.0.44/temp
Using JRE_HOME:        /home/pms/jdk1.7.0_65
Using CLASSPATH:       /home/pms/apache-tomcat-6.0.44/bin/bootstrap.jar
[root@test conf]# netstat -ntlup | grep -e "80\|443"
tcp        0      0 0.0.0.0:80         0.0.0.0:*          LISTEN      21960/java         
tcp        0      0 0.0.0.0:443        0.0.0.0:*          LISTEN      21960/java         
tcp        0      0 127.0.0.1:8005     0.0.0.0:*          LISTEN      21960/java         
tcp        0      0 0.0.0.0:8009       0.0.0.0:*          LISTEN      21960/java         
[root@test conf]#


    5. successful !



    




    



本文出自 “一杯白开水” 博客,请务必保留此出处http://ultraera.blog.51cto.com/6640392/1679248

© 著作权归作者所有

SAMZONG
粉丝 3
博文 33
码字总数 24653
作品 0
长宁
个人站长
私信 提问
用tomcat搭建https

HTTPS,安全的http连接,并且苹果也宣布,在将来他们将不在支持http,所有的链接均走https。这里借助jdk的工具和tomcat服务器,搭建一个HTTPS的服务器 1、进入java jdk的bin目录,运行keyto...

二两豆腐
2015/11/24
65
0
weblogic制作证书实现HTTPS 完整版

服务器证书安装配置指南(Weblogic) 之前在网上找了好多资料,按照步奏执行,但是最后都不行,都缺了一点,最后终于整合起来了,从自己制作CA证书到weblogic配置和客户端IE设置,全部OK 一、...

java梦想家01
2016/01/19
307
0
完美配置Tomcat的HTTPS

Tomcat配置HTTPS的文章到处都有,过程也比较简单,随后文中会转一段过来。 但对于启用APR情况下报异常“java.lang.Exception: Connector attribute SSLCertificateFile must be defined whe...

honey_fansy
2015/08/11
91
0
Android版Https客户端与服务端的双向证书实现

最近开发的时候遇到Https协议的问题 因为项目用的是Volley来进行http请求,但是使用Volley之后,发现他并不支持Https请求。 查看源码: 从源码中我们可以看出来执行网络请求的关键类Httpsta...

yizhihaohut
2015/10/16
9.6K
0
基于java的https双向认证,android上亦可用

概述: 客户端,浏览器或者使用http协议和服务器通信的程序。 如: 客户端通过浏览器访问某一网站时,如果该网站为HTTPS网站,浏览器会自动检测系统中是否存在该网站的信任证书, 如果没有信任证...

ilovej
2014/10/31
3.6K
2

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部