1. https简介

    它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

    也就是说它的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

  2. HTTPS和HTTP的区别

      一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

      二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

      三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

  3.  SSL介绍

    为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。

      当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。

    SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

    连接分为两个阶段,即握手和数据传输阶段。

    握手阶段对服务器进行认证并确立用于保护数据传输的加密密钥。必须在传输任何应用数据之前完成握手。一旦握手完成,数据就被分成一系列经过保护的记录进行传输。

  4.  SSL协议提供的服务主要有哪些?

      1)认证用户和服务器,确保数据发送到正确的客户机和服务器

      2)加密数据以防止数据中途被窃取

      3)维护数据的完整性,确保数据在传输过程中不被改变。

  5.  https的实现原理

    有两种基本的加解密算法类型:

    1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;

    2)非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。

  6.  https通信的优点:

    1)客户端产生的密钥只有客户端和服务器端能得到;

    2)加密的数据只有客户端和服务器端才能得到明文;

    3)客户端到服务端的通信是安全的。

    加密过程:

    在https的通信过程中,组合使用了公用密钥方式加密和共享密钥方式加密这两种技术。公用密钥方式要比共享密钥方式慢得多,因此使用公用密钥来完成共享密钥的交换。公用密钥是从证书中获得的。拿到共享密钥之后,所有的内容之间的通信都会使用共享密钥来进行加密和解密。公用密钥的作用就是为了安全的交换共享密钥,共享密钥是用来通信内容的加密和解密。这样既确保了通信之间的安全,也确保了加密和解密的效率。

  7.  配置jdk与tomcat环境变量

    export JAVA_HOME=/usr/java/jdk1.8.0_92
    export JRE_HOME=$JAVA_HOME/jre
    export TOMCAT_HOME=/var/apache-tomcat-7.0.63
    export CATALINA_HOME=/var/apache-tomcat-7.0.63
    export CATALINA_BASE=/var/apache-tomcat-7.0.63

    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/bin/tools.jar:$JRE_HOME/lib
    export CLASSPATH=:CLASSPATH:$CATALINA_HOME/common/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME:$TOMCAT_HOME/bin

  1. 接下来主要陈述一下 :Tomcat配置双向的ssl方式
  2. 第一步:使用keytool为Tomcat生成证书

    [root@iZ25fe0s3erZ apache-tomcat-7.0.63]# keytool -alias tomcat -genkey -keyalg RSA -keysize 1024 -sigalg SHA1withRSA -validity 3650 -keystore /var/apache-tomca t-7.0.63/tomcat.keystore
    Enter keystore password:
    Re-enter new password:
    What is your first and last name?  输入你服务器使用的域名
    [Unknown]: 123.com
    What is the name of your organizational unit?  输入组织名称
    [Unknown]: cmm
    What is the name of your organization? 输入单位名称
    [Unknown]: cmm
    What is the name of your City or Locality?  输入你所在的城市
    [Unknown]: beijing
    What is the name of your State or Province? 输入你所在的县
    [Unknown]: beijing
    What is the two-letter country code for this unit?  输入你所在国家的编码
    [Unknown]: CN
    Is CN=yingyangmeishi.chaomeiman.com, OU=chaomeiman, O=chaomeiman, L=beijing, ST= beijing, C=CN correct?
    [no]: Y

    Enter key password for <tomcat>        
    (RETURN if same as keystore password):

  3.  第二步:为客户端生成证书

    为浏览器生成证书,以便让服务器来验证它。

  4.  第三步:让服务器信任客户端证书

    由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,我们必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

    然后将该文件导入到服务器的证书库,添加为一个信任证书:

    keytool -export -alias tomcat -keystore /var/apache-tomcat-7.0.63/tomcat2.keystore -file /var/apache-tomcat-7.0.63/tomcat.cer

  5.  第四步:

    让服务器信任服务端证书(同第三步)

  6.  第五步:

    list命令查看服务器的证书库,我们可以看到两个输入,一个是服务器证书,一个是受信任的客户端证书:

    keytool -list /var/apache-tomcat-7.0.63/tomcat.keystore

  7. 在tomcat的server.xml文件中配置相关参数

    <Connector port="8443"

    protocal="HTTP/1.1"

    SSLEnabled="true"

    maxThread="150"

    scheme="https"

    secure="true"

    clientAuth="false"

    sslProtocol="TLS"

    keystoreFile="/var/apache-tomcat-7.0.63/tomcat.keystore"

    keystorePass="cmm******"/>

 

    

linux apache Tomcat配置SSL(https)步骤的更多相关文章

  1. apache Tomcat配置SSL(https)步骤

    Tomcat配置https 1      生成Server端安全证书 要实现通信加密,首先要在本地准备一份符合X.509标准的Server端安全证书.如果有条件的话,可以向权威CA申请一份经过认证的安 ...

  2. SpringBoot 2.x中为tomcat配置ssl(https)支持

    参考来源:https://www.cnblogs.com/imfjj/p/9058443.html https://blog.csdn.net/jackymvc/article/details/810 ...

  3. TOMCAT配置SSL认证为HTTPS协议服务

     1 . 问题概述 很多安全性要求较高的系统,都会使用安全套接字层(SSL)进行信息交换, Sun为了解决在Internet上的实现安全信息传输的解决方案.它实现了SSL和TSL(传输层安全)协议 ...

  4. Let's Encrypt+Apache+Tomcat实现免费HTTPS

    Let's Encrypt是一个免费SSL证书发行项目,发行的证书已经获得主流浏览器的支持,亲测谷歌浏览器(桌面版).火狐浏览器(桌面版).UC浏览器(手机版).360浏览器(手机版)支持,其它的暂没 ...

  5. Tomcat 配置成https协议

    Tomcat 配置成https协议 在命令提示符窗口,进入Tomcat目录,执行以下命令:  keytool -genkey -alias tomcat -keyalg RSA -keypass ch ...

  6. (转)Tomcat 配置成https协议

    Tomcat 配置成https协议 TomcatXMLServlet  在命令提示符窗口,进入Tomcat目录,执行以下命令: keytool -genkey -alias tomcat -keyal ...

  7. 华为云服务器为Tomcat配置SSL

    近期由于开发小程序需要在云服务器上配置https访问协议,也遇到了一点小问题,把配置过程记录一下:SSL 证书申请下来之后会有 .jks .crt .pfx .pem为后缀的文件(如何申请SSL证书这 ...

  8. Tomcat配置SSL

    Tomcat配置SSL 查询网上资料配置如下: <Connector port="8443" protocol="HTTP/1.1" maxThreads ...

  9. 单点登录 SSO, 自动登录 , java 加密,ssl原理, Tomcat配置SSL

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录 ...

随机推荐

  1. HDU4667(有错)

    正规的做法是找切点.三角形三个顶点分别对圆作切线,然后求切点(2个).两圆之间也要求切点(4个). 扯淡了这就..麻烦的要命.. 下面是写了一半的代码.. void process_circle(po ...

  2. Sqlite-Sqlite3中的数据类型

    大多数的数据库引擎(到现在据我们所知的除了sqlite的每个sql数据库引擎)都使用静态的.刚性的类型,使用静态类型,数据的类型就由它的容器决定,这个容器是这个指被存放的特定列. Sqlite使用一个 ...

  3. centos6.8服务器配置之SVN配置

    version 1.6.11 一.安装:因对版本要求不高,所以采用yum安装 yum install -y svn 二.配置 1.创建仓库,以后所有代码都放在这个下面,创建成功后在svn下面多了几个文 ...

  4. linux 遇见错误Could not get lock /var/lib/dpkg/lock

    通过终端安装程序sudo apt-get install xxx时出错:E: Could not get lock /var/lib/dpkg/lock - open (11: Resource te ...

  5. 用户手册是Yasm汇编

    本文档的用户手册是Yasm汇编. 它是介绍和通用所有Yasm用户参考. 英文的参考:http://www.cnblogs.com/coryxie/p/3959888.html 1 .介绍 Yasm b ...

  6. javascript 中用到的时间戳函数

    JavaScript 获取当前时间戳:第一种方法: var timestamp = Date.parse(new Date()); 例如结果:1280977330000第二种方法: var times ...

  7. wtforms 提示 中文 flask

    #! /usr/bin/python3 # -*- coding: utf8 -*-   from wtforms.fields.simple import TextField, PasswordFi ...

  8. 算法笔记_097:蓝桥杯练习 算法提高 P1001(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法.具体来说,首先以字符串的形式输入两个整 ...

  9. python求pi的方法

    来自 #_*_ coding=utf-8 *_* ## {{{ http://code.activestate.com/recipes/578130/ (r5) def pi(places=10): ...

  10. sql server使用sql插入中文字符串乱码问题

    在插入语句前加N就行了 sb.Append(string.Format("update chapter set [content]=N'{0}' where Id ={1} ;", ...