zoukankan      html  css  js  c++  java
  • 配置Tomcat使用https协议

    前言:http协议介绍

    OSI 和 TCP/IP通信协议对比
    如图

    HTTP协议处于TCP/IP协议体系的应用层。HPPT协议属于应用层的协议,因此工作在最高层,即应用层。图中未标记出HTTP协议,它与FTP、DNS等协议工作 在同一层。

    应用层(Application Layer)包含所有的高层协议,包括:

    虚拟终端协议(TELNET,TELecommunications NETwork);文件传输协议(FTP,File Transfer Protocol);

    电子邮件传输协议(SMTP,Simple Mail Transfer Protocol);域名服务(DNS,Domain Name Service);

    网上新闻传输协议(NNTP,Net News Transfer Protocol);超文本传送协议(HTTP,HyperText Transfer Protocol)。

    HTTP协议被用于从WWW服务器传输超文本到本地浏览器的传输。

    它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。

    在TCP/IP协议的应用层中包含了大量人们普遍需要的协议。

    不同的文件系统有不同的文件命名原则和不同的文本行表示方法等,不同的系统之间传输文件还有各种不兼容问题,这些都将由应用层来处理。此外,应用层还有虚拟终端、电子邮件和新闻组等各种通用和专用的功能。

    HTTP与HTTPS协议区别:实际上是在http协议下加了一层数据安全层(SSL)

    http请求必须由http协议的端口接收,但是http可以redirectPort到其他https协议的端口上;

    https请求必须由https协议的端口接收

    一、证书生成

    1、生成服务器证书

    (1)打开打开命令控制台,进入jdk的bin目录

                       cd D:\Program Files\jdk1.6.0_45\bin

    (2)keytool为Tomcat生成证书(“-validity 36500”证书有效期,36500表示100年,默认值是90天)

               keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore -validity 36500

     配置tomcat  server.xml

    <Connector port="6443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
    maxThreads="3000" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    enableLookups="false"
    compression="on"
    compressionMinSize="2048"
    compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
    connectionTimeout="20000"
    disableUploadTimeout="true"
    maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
    keystoreFile="C:\Program Files\Apache Software Foundation\Tomcat 8.5_Tomcat8_2\conf\tomcat.keystore"
    keystorePass="111111"
    />

     测试:https://localhost:6443

    2、生成客户端证书

             keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore E:\mykey.p12

     

    3、让服务器信任客户端证书

    (1)由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

             keytool -export -alias mykey -keystore E:\mykey.p12 -storetype PKCS12 -storepass 123456 -rfc -file E:\mykey.cer

    (2)将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:

               keytool -import -v -file E:\mykey.cer –keystore E:\tomcat.keystore

     

    (3)通过 list 命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:

    keytool -list -keystore E:\tomcat.keystore

     

    4、让客户端信任服务器证书

    把服务器证书导出为一个单独的CER文件提供给客户端,使用如下命令:

    keytool -keystore E:\tomcat.keystore -export -alias tomcat -file E:\tomcat.cer

     

    5、经过上面操作,生成如下证书:

     

    其中 tomcat.cer 提供给客户端,tomcat.keystore供服务器使用

    二、证书使用

    1、服务器tomcat的配置

    (1)打开Tomcat根目录下的/conf/server.xml,找到Connector port="8443"配置段,修改为如下:

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"               maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="E:/tomcat.keystore" keystorePass="123456" truststoreFile="E:/tomcat.keystore" truststorePass="123456" />

     

    注释掉

    <!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->

     

    (2)测试服务端,IE浏览器输入访问地址

     

    但由于是自签名的证书,所以浏览器会警告我们不安全,选择继续:

     

    可以看到能成功访问了(地址栏“证书错误”,此时数据已经是使用HTTPS传输了)

     

     

    2、导入服务器公钥证书(tomcat.cer)

    由于是自签名的证书,为避免每次都提示不安全。这里双击tomcat.cer安装服务器证书。

    注意:将证书填入到“受信任的根证书颁发机构”

     

    再次重新访问服务器,会发现没有不安全的提示了,同时浏览器地址栏上也有个“锁”图标。

     

    至此,就完成了配置。

    注:由于jdk自带的keytool生成的签名属于弱签名算法(SHA-1),但是,SHA-1已经过时因而不再推荐使用。新证书使用了更强的签名算法(比如SHA-256)。SHA-1的证书将从2017开始不再被主流浏览器厂商视为安全的。

  • 相关阅读:
    【校招面试 之 C/C++】第23题 C++ STL(五)之Set
    Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".
    Redhat Linux安装JDK 1.7
    ORA-10635: Invalid segment or tablespace type
    Symantec Backup Exec 2012 Agent for Linux 卸载
    Symantec Backup Exec 2012 Agent For Linux安装
    You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
    YourSQLDba介绍
    PL/SQL重新编译包无反应
    MS SQL 监控数据/日志文件增长
  • 原文地址:https://www.cnblogs.com/tongcc/p/15543436.html
Copyright © 2011-2022 走看看