Tomcat8.5以上配置阿⾥云免费SSL证书启⽤https协议
基本概念
SSL证书:SSL证书是数字证书的⼀种,类似于驾驶证、护照和营业执照的电⼦副本。因为配置在服务器上,也称为SSL服务器证书。
SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器⾝份后颁发,具有服务器⾝份验证和数据传输加密功能。
SSL证书通过在客户端浏览器和Web服务器之间建⽴⼀条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要⽤来提供对⽤户和服务器的认证;对传送的数据进⾏加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于SSL技术已建⽴到所有主要的浏览器和WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了),即通过它可以激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防⽌数据信息的泄露,保证了双⽅传递信息的安全性,⽽且⽤户可以通过服务器证书验证他所访问的⽹站是否是真实可靠。数字签名⼜名数字标识、签章(即 Digital Certificate,Digital ID ),提供了⼀种在⽹上进⾏⾝份验证的⽅法,是⽤来标志和证明⽹络通信双⽅⾝份的数字信息⽂件,概念类似⽇常⽣活中的司机驾照或⾝份证。 数字签名主要⽤于发送安全电⼦邮件、访问安全站点、⽹上招标与投标、⽹上签约、⽹上订购、
⽹上公⽂安全传送、⽹上办公、⽹上缴费、⽹上缴税以及⽹上购物等安全的⽹上电⼦交易活动。
HTTPS协议:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为⽬标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加⼊SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是⼀个URI scheme(抽象标识符体系),句法类同http:体系。⽤于安全的HTTP数据传输。https:URL表明它使⽤了HTTP,但HTTPS存在不同于HTTP的默认端⼝及⼀个加密/⾝份验证层(在HTTP与TCP之间)。这个系统的最初研发由⽹景公司(Netscape)进⾏,并内置于其浏览器Netscape Navigator中,提供了⾝份验证与加密通讯⽅法。现在它被⼴泛⽤于万维⽹上安全敏感的通讯,例如交易⽀付⽅⾯。
HTTP与HTTPS的区别:HTTP协议传输的数据都是未加密的,也就是明⽂的,因此使⽤HTTP协议传输隐私信息⾮常不安全,为了保证这些隐私数据能加密传输,于是⽹景公司设计了SSL(Secure Sockets Layer)协议⽤于对HTTP协议传输的数据进⾏加密,从⽽就诞⽣了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,要⽐http协议安全。
操作步骤
获取SSL证书
1、阿⾥云申请免费的SSL证书
下载SSL证书
Tomcat配置
阿⾥云SSL证书官⽅Tomcat配置说明:
Tomcat⽀持JKS格式证书,从Tomcat7开始也⽀持PFX格式证书,两种证书格式任选其⼀。
⽂件说明:
1.证书⽂件xxxx.pem,包含两段内容,请不要删除任何⼀段内容。
2.如果是证书系统创建的CSR,还包含:证书私钥⽂件xxxx.key、PFX格式证书⽂件xxxx.pfx、PFX格式证书密码⽂件pfx-
<。
1、证书格式转换
在Tomcat的安装⽬录下创建cert⽬录,并且将下载的全部⽂件拷贝到cert⽬录中。如果申请证书时是⾃⼰创建的CSR⽂件,附件中只包含xxxx.pem⽂件,还需要将私钥⽂件拷贝到cert⽬录,命名为xxxx.key;如果是系统创建的CSR,请直接到第2步。
到cert⽬录下执⾏如下命令完成PFX格式转换命令,此处要设置PFX证书密码,请牢记:
openssl pkcs12 -export -out xxxx.pfx -inkey xxx.key -in xxxx.pem
2、PFX证书安装
到安装Tomcat⽬录下该⽂件l,⼀般默认路径都是在 conf ⽂件夹中。到 <Connection port="8443" 标签,增加如下属性:
keystoreFile="cert/xxxx.pfx"
keystoreType="PKCS12"
打开l,到如下代码,去掉注释
注:不到直接添加也可以
修改为
<Connector port="8443" protocol="http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="D:/apache-tomcat-8.5.15/cert/xxx.pfx"
certificateKeystoreType="PKCS12" certificateKeystorePassword="xxx" />
</SSLHostConfig>
</Connector>
参数信息:
属性    描述
certificateRevocationListFile
包含证书颁发机构的级联证书吊销列表的⽂件名。格式是PEM编码的。如果未定义,则不会根据证书吊销列表检查客户端证书(除⾮使⽤了基于OpenSSL的连接器并且 定义了certificateRevocationListPath)。相对路径将针对解析$CATALINA_BASE。基于JSSE的连接器也可以为此属性指定⼀个URL。
certificateRevocationListPath
仅OpenSSL。
包含证书颁发机构的证书吊销列表的⽬录的名称。格式是PEM编码的。相对路径将针对解析$CATALINA_BASE。
certificateVerification
设置为required,如果你想在SSL栈需要从客户端的有效证书链接受连接之前。optional如果希望SSL堆栈请求客户端证书,则设置为,但是如果未提供证书,则不会失败。设置为 optionalNoCA,如果你想客户证书是可选的,你不想Tomcat来检查他们对信任的CA列表中。如果TLS提供程序不⽀持此选项(OpenSSL⽀持,JSSE不⽀持),则将其视为optional已指定。⼀ none,除⾮客户端请求由安全限制
使⽤保护的资源值(默认值)将不需要证书链CLIENT-CERT认证。
certificateVerificationDepth
验证客户端证书时允许的中间证书的最⼤数量。如果未指定,将使⽤默认值10。
ciphers
使⽤OpenSSL语法启⽤的密码。(有关⽀持的密码列表和语法,请参见OpenSSL⽂档。)或者,可以使⽤逗号分隔的使⽤标准OpenSSL 密码名称或标准JSSE密码名称的密码列表。
对于基于JSSE的连接器,从OpenSSL语法转换为JSSE密码时,OpenSSL语法分析的⾏为与OpenSSL 1.1.0开发分⽀的⾏为保持⼀致。
仅使⽤SSL实施⽀持的密码。
如果未指定,将使⽤默认值(使⽤OpenSSL表⽰法) HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA。
请注意,默认情况下,定义密码的顺序被视为优先顺序。请参阅honorCipherOrder。
SSL主机的名称。这应该是完全限定域名(例如)或通配符域名(例如*.)。如果未指定,_default_将使⽤默认值。
protocols
与客户端通信时要⽀持的协议的名称。这应该是以下各项的任意组合的列表:
SSLv2您好
SSLv3
TLSv1
TLSv1.1
TLSv1.2
TLSv1.3
所有
列表中的每个标记都可以带有加号(“ +”)或减号(“-”)前缀。加号添加协议,减号将其从当前列表中删除。该列表是从⼀个空列表开始构建的。
令牌all是的别名 SSLv2Hello,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。
请注意,TLSv1.3仅当使⽤实现的JVM时,JSSE才⽀持该功能TLSv1.3。
请注意,SSLv2Hello对于基于OpenSSL的安全连接器,它将被忽略。如果为基于OpenSSL的安全连接器指定了多个协议,它将始终⽀持SSLv2Hello。如果指定了单个协议,则不⽀持 SSLv2Hello。
请注意,SSLv2和SSLv3本质上是不安全的。
如果未指定,all将使⽤默认值。
sessionCacheSize
要在会话缓存中维护的SSL会话数。指定 -1使⽤实现默认值。零及以上的值将传递给实现。零⽤于指定⽆限的缓存⼤⼩,不建议使⽤。如果未指定,-1则使⽤默认值。
sessionTimeout
创建SSL会话后将超时的时间(以秒为单位)。指定-1使⽤实现默认值。零及以上的值将传递给实现。零⽤于指定⽆限超时,不建议使⽤。如果未指定,则使⽤默认值86400(24⼩时)。
sslProtocol
仅限JSSE。
要使⽤的SSL协议(⼀个值可以启⽤多个协议-有关详细信息,请参阅JVM⽂档)。如果未指定,则默认为TLS。在创建SSLContext实例(例如 Oracle Java 7)时,可以从JVM⽂档中获取算法允许值的允许值 。注意:此属性和之间有重叠 protocols。
注:Tomcat 8.0及以下配置:
<Connector port="8443" protocol="http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="F:\Keystore\tomcat.keystore"
keystorePass="123456"/>
参数信息:
属性    描述
clientAuth    如果设为true,表⽰Tomcat要求所有的SSL客户出⽰安全证书,对SSL客户进⾏⾝份验证
keystoreFile    指定keystore⽂件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME>(Tomcat安装⽬录)环境变量 的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统⽤户的⽤户⽬录下读取名为“.keystore”的⽂件。keystorePass    指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使⽤“changeit”作为默认密码。
ssl协议全称sslProtocol    指定套接字(Socket)使⽤的加密/解密协议,默认值为TLS,⽤户不应该修改这个默认值。
ciphers    指定套接字可⽤的⽤于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使⽤任意⼀个可⽤的密码。
保存
访问
https//:域名:端⼝
注:HTTPS协议默认端⼝443学习使⽤  侵删。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。