开启Tomcat https服务

发布企业级应用的时候遇到一个问题,就是IOS7.1之后app的下载地址URL必须是https开头的协议,所以服务器必须支持https协议。

实验环境:Mac OSX 或者 win7,Tomcat 7.0,JDK 1.7

一.环境搭建

1. 安装tomcat

a.下载地址:http://tomcat.apache.org/download-70.cgi

b.下载你机器的Tomcat版本

2. 安装JDK

tomcat需要安装与其配套的JDK否则无法运行。

  1. 配置tomcatJDK路径

    4运行测试tomcat

    浏览器中输入:http://localhost:8080

    如果出现了tomcat的欢迎页面说明配置正确了,如果浏览器为空白说明你配置错误,你应该检查控制台输出的错误或警告信息,然后进行改正。

    5、安装vcredist_x86

    这个的东西是安装openssl的环境,安装oenssl前需安装此环境。

    6、安装openssL

    a网上搜索Win32OpenSSL-1_0_1g.exe,下载一个。

    一路下一步,选择安装路径进行安装 (我选择的是D:\OpenSSL-Win32\)

二、制作自签名
CA 证书(根证书)

CA
证书的制作有两个步骤:

1、创建一个私钥文件:

openssl
genrsa -out myCA.key 2048

私钥文件名为
myCA.key。

2、然后创建根证书:

openssl req -x509 -new -key myCA.key -out myCA.cer -days 730 -subj
/CN="My CustomCA"

根证书文件名为
myCA.cer,机构名称为 My Custom CA。

三、制作自签名
SSL 证书(叶证书)

1、首先创建一个私钥:

openssl
genrsa -out server.key 2048

私钥文件名为
server.key。

2、然后创建
CSR:

openssl
req -new -out server.req -key server.key -subj /CN=127.0.0.1/CN=192.168.31.128/CN=localhost

这里假设服务器的IP
为192.168.2.1。输出文件为 server.req。

3、然后用CSR
去创建 SSL 证书:

openssl
x509 -req -in server.req -out server.cer -CAkey myCA.key -CA myCA.cer -days
36500 -CAcreateserial -CAserial server.serial

这里我们假设有效期为100年,输出文件为
server.cer,序号文件为 server.serial(撤销证书时使用)。

4、将
.key 和 .cer 文件导出为
.p12 证书:

openssl
pkcs12 -export -in server.cer -inkey server.key -out server.p12 -name
"server"

根据命令提示,需要输入两次证书密码。这里我们假设密码为 keypass。输出文件名为 server.p12。

5、将
.p12 文件导入到 java keystore 中:

keytool
-importkeystore -v -srckeystore  server.p12 -srcstoretype pkcs12
-srcstorepass keypass -destkeystore server.keystore -deststoretype jks
-deststorepass keypass

这里我们假设
keystore 文件名为 server.keystore,keystore
密码为 keypass。

四、使用
SSL 证书

将最后得到的
keystore 文件 (server.keystore) 放在
web 服务器上。例如 Tomcat 目录的
conf 目录下。

然后修改
server.xml:

<Connectorport="8443" protocol="org.apache.coyote.http11.Http11Protocol"SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

keystoreFile="D:/CA/server.keystore" keystorePass=" keypass
"

clientAuth="false" sslProtocol="TLS" />

重启
Tomcat,通过以下地址访问 https 服务:

https://localhost:8443/ 或者
https://192.168.2.1:8443/。

服务器开启https协议的更多相关文章

  1. 分享一个免费SSL证书申请网站,给网站开启https协议 | 张戈博客

    这些天,由于公司的业务需求,接触到了ssl证书和https协议.博客前几篇文章也分享了在WEB服务器上安装SSL证书,为网站开启https协议的教程,感兴趣的童鞋可以前往查看相关文章: <Lin ...

  2. 【技术博客】nginx服务器的https协议实现

    在本学期软件工程的Alpha和Beta阶段,我们的服务器部署都是使用基础的http协议,http在网络路由间的信息转发都为明文,这对我们网站的账户密码登录来说很不安全,因此在Gamma阶段我们实现了h ...

  3. jboss eap开启https协议

    1.使用 keytool -genkey -keystore chap8.keystore -storepass rmi+ssl -keypass rmi+ssl -keyalg RSA -alias ...

  4. tomcat开启https协议

    1.在tomcat的conf/server.xml 中配置 <Connector port="443" protocol="org.apache.coyote.ht ...

  5. 【转】Linux下nginx配置https协议访问的方法

    一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...

  6. Linux下nginx配置https协议访问

    一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...

  7. Linux下nginx配置https协议访问的方法

    一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...

  8. Linux服务之nginx服务篇四(配置https协议访问)

    一.配置nginx支持https协议访问 编译安装nginx的时候需要添加相应的模块--with-http_ssl_module和--with-http_gzip_static_module(可通过/ ...

  9. Tomcat服务器配置https协议(Tomcat HTTPS/SSL 配置)

    通常商用服务器使用https协议需要申请SSL证书,证书都是收费的,价格有贵的有便宜的.它们的区别是发行证书的机构不同,贵的证书机构更权威,证书被浏览器否决的几率更小. 非商业版本可以通过keytoo ...

随机推荐

  1. js格式化日期

    /** *对日期进行格式化, * @param date 要格式化的日期 * @param format 进行格式化的模式字符串 * 支持的模式字母有: * y:年, * M:年中的月份(1-12), ...

  2. EF里Guid类型数据的自增长、时间戳和复杂类型的用法

    通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些 ...

  3. 使用Hystrix提高系统可用性

    今天稍微复杂点的互联网应用,服务端基本都是分布式的,大量的服务支撑起整个系统,服务之间也难免有大量的依赖关系,依赖都是通过网络连接起来. (图片来源:https://github.com/Netfli ...

  4. 一不小心写了个WEB服务器

    开场 Web服务器是啥玩意? 是那个托管了我的网站的机器么? No,虽然那个也是服务器,但是我们今天要说的Web服务器主要是指像IIS这样一类的,用于处理request并返回response的工具,没 ...

  5. 怎样编写高质量的java代码

    代码质量概述     怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友 ...

  6. C#委托使用详解(Delegates)

    摘要 委托是C#编程一个非常重要的概念,也是一个难点.本文将系统详细讲解委托. 1. 委托是什么? 其实,我一直思考如何讲解委托,才能把委托说得更透彻.说实话,每个人都委托都有不同的见解,因为看问题的 ...

  7. [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)

    在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...

  8. ASP.NET中Session的sessionState 4种mode模式

    1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. ...

  9. 【解决方案】 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userHandler': Injection of resource dependencies failed;

    一个错误会浪费好多青春绳命 鉴于此,为了不让大家也走弯路,分享解决方案. [错误代码提示] StandardWrapper.Throwableorg.springframework.beans.fac ...

  10. 前端学PHP之PHP操作memcache

    × 目录 [1]安装 [2]连接 [3]增删改查[4]分布式[5]状态[6]安全[7]应用 前面的话 和访问mysql服务器类似,PHP也是作为客户端API访问memcached服务器的,所以同样需要 ...