最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用keytools為tomcat 7配置ssl雙向認(rèn)證的方法

 更新時(shí)間:2017年02月04日 08:30:48   作者:不爭  
雙向認(rèn)證和單向認(rèn)證原理基本差不多,只是除了客戶端需要認(rèn)證服務(wù)端以外,增加了服務(wù)端對(duì)客戶端的認(rèn)證,下面這篇文章主要介紹了利用keytools為tomcat 7配置ssl雙向認(rèn)證的方法,需要的朋友可以借鑒,下面來一起看看吧。

SSL簡單介紹

SSL(Secure Sockets Layer 安全套接層)就是一種協(xié)議(規(guī)范),用于保障客戶端和服務(wù)器端通信的安全,以免通信時(shí)傳輸?shù)男畔⒈桓`取或者修改。

1.怎樣保障數(shù)據(jù)傳輸安全?

客戶端和服務(wù)器端在進(jìn)行握手(客戶端和服務(wù)器建立連接和交換參數(shù)的過程稱之為握手)時(shí)會(huì)產(chǎn)生一個(gè)“對(duì)話密鑰”(session key),用來加密接下來的數(shù)據(jù)傳輸,解密時(shí)也是用的這個(gè)“對(duì)話密鑰”,而這個(gè)“對(duì)話密鑰”只有客戶端和服務(wù)器端知道。也就是說只要這個(gè)“對(duì)話密鑰”不被破解,就能保證安全。

 2. 客戶端證書和服務(wù)器端證書

客戶端證書和服務(wù)器端證書用于證明自己的身份,就好比每個(gè)人都有一張身份證,這種身份證是唯一的。一般來說,只要有服務(wù)器端的證書就可以了,但是有時(shí)需要客戶端提供自己的證書,已證明其身份。

Keytool

Keytool 是一個(gè)Java數(shù)據(jù)證書的管理工具 ,Keytool將密鑰(key)和證書(certificates)存在一個(gè)稱為keystore的文件中在keystore里,包含兩種數(shù)據(jù):密鑰實(shí)體(Key entity)-密鑰(secret key)或者是私鑰和配對(duì)公鑰(采用非對(duì)稱加密)可信任的證書實(shí)體(trusted certificate entries)-只包含公鑰。下面就來看看利用keytools為tomcat 7配置ssl雙向認(rèn)證的詳細(xì)過程吧。

第一、證書庫、證書等生成

1、生成服務(wù)器證書庫

keytool -validity 36500 -genkey -v -alias tomcat_server -keyalg RSA -keystore tomcat_server.keystore -dname "CN=127.0.0.1,OU=,O=,L=,ST=,c=" -storepass 123456 -keypass 123456
  • -validity 36500 有效期,以天為單位
  • CN 這項(xiàng)一定是服務(wù)器的域名或者IP地址
  • OU 組織單位
  • O 組織
  • L 區(qū)域
  • ST 州/省份
  • C 國家

2、客戶端證書

keytool -validity 36500 -genkeypair -v -alias testclient -keyalg RSA -storetype PKCS12 -keystore testclient.p12 -dname "CN=testclient,OU=,O=,L=,ST=,c=" -storepass 123456

-storetype PKCS12 主要是為了將證書導(dǎo)入IE/firefox 中。

將生成的證書導(dǎo)入IE中。

3、將客戶端證書導(dǎo)入服務(wù)器端證書庫

服務(wù)器端證書不識(shí)別 p12格式的證書,需要從客戶端證書導(dǎo)出 CER格式證書,然后將CER格式證書導(dǎo)入到服務(wù)器端證書中。

keytool -export -alias testclient -keystore testclient.p12 -storetype PKCS12 -storepass 123456 -rfc -file testclient.cer

然后將client.cer 導(dǎo)入到服務(wù)器證書庫(使用下面任意一個(gè)命令)

keytool -import -v -file testclient.cer -keystore tomcat_server.keystore -storepass 123456
keytool -import -alias testclient -v -file testclient.cer -keystore tomcat_server.keystore -storepass 123456

注意:這里的別名,如果不加別名,則默認(rèn)別名則是 mykey,所以見到mykey 請(qǐng)不要吃驚。

4、從服務(wù)器證書庫導(dǎo)出服務(wù)器證書

keytool -export -alias tomcat_server -keystore tomcat_server.keystore -storepass 123456 -rfc -file tomcat_server.cer

該證書可以導(dǎo)入瀏覽器中,讓客戶端信任服務(wù)器證書。不導(dǎo)入也不影響使用,但瀏覽器會(huì)不信任服務(wù)器證書,會(huì)提示錯(cuò)誤信息。

5、查看證書庫中的所有證書

keytool -list -keystore tomcat_server.keystore -storepass 123456

第二、Tomcat 配置

配置 server.xml

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
 maxThreads="150" scheme="https" secure="true"
 keystoreFile="D:\\dev\\tomcat-https\\note\\tomcat_server.keystore" 
 keystorePass="123456" 
 truststoreFile="D:\\dev\\tomcat-https\\note\\tomcat_server.keystore" 
 truststorePass="123456"
 clientAuth="true" sslProtocol="TLS" />

啟動(dòng)tomcat 就可以了。

問題

如果啟動(dòng)時(shí)報(bào)如下錯(cuò)誤:

SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"]
java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR
 at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:507)
 at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610)
 at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429)
 at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:640)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:665)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:601)
 at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)

則是由于Tomcat中的SSL采用了 APR來實(shí)現(xiàn)的,關(guān)于SSL的實(shí)現(xiàn),Tomcat提供了兩種:JSSE和APR,如果安裝了 APR,則優(yōu)先選擇APR作為實(shí)現(xiàn)。

APR的ssh配置需要通OpenSSH來進(jìn)行配置。這在 server.xml 中有說明:

Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the connector should be using the OpenSSL style configuration described in the APR documentation

那么避免采用 APR呢? 有兩種方法,

1,將 protocol=”HTTP/1.1” 修改為 protocol=”org.apache.coyote.http11.Http11Protocol”

2,在windows 下,可以將 bin 目錄下的 tcnative-1.dll 刪掉。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • ActiveMQ中consumer的消息確認(rèn)機(jī)制詳解

    ActiveMQ中consumer的消息確認(rèn)機(jī)制詳解

    這篇文章主要介紹了ActiveMQ中consumer的消息確認(rèn)機(jī)制詳解,對(duì)于broker而言,只有接收到確認(rèn)指令,才會(huì)認(rèn)為消息被正確的接收或者處理成功了,InforSuiteMQ提供以下幾種Consumer與Broker之間的消息確認(rèn)方式,需要的朋友可以參考下
    2023-10-10
  • mybatis?like模糊查詢特殊字符報(bào)錯(cuò)轉(zhuǎn)義處理方式

    mybatis?like模糊查詢特殊字符報(bào)錯(cuò)轉(zhuǎn)義處理方式

    這篇文章主要介紹了mybatis?like模糊查詢特殊字符報(bào)錯(cuò)轉(zhuǎn)義處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Eclipse引用XSD實(shí)現(xiàn)XML配置文件提示標(biāo)簽的方法

    Eclipse引用XSD實(shí)現(xiàn)XML配置文件提示標(biāo)簽的方法

    今天小編就為大家分享一篇關(guān)于Eclipse引用XSD實(shí)現(xiàn)XML配置文件提示標(biāo)簽的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • SpringMVC實(shí)現(xiàn)注解式權(quán)限驗(yàn)證的實(shí)例

    SpringMVC實(shí)現(xiàn)注解式權(quán)限驗(yàn)證的實(shí)例

    本篇文章主要介紹了SpringMVC實(shí)現(xiàn)注解式權(quán)限驗(yàn)證的實(shí)例,可以使用Spring MVC中的action攔截器來實(shí)現(xiàn),具有一定的參考價(jià)值,有興趣的可以了解下。
    2017-02-02
  • 一篇文章帶你深入理解JVM虛擬機(jī)讀書筆記--鎖優(yōu)化

    一篇文章帶你深入理解JVM虛擬機(jī)讀書筆記--鎖優(yōu)化

    這篇文章深入介紹了JVM虛擬機(jī)的鎖優(yōu)化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-09-09
  • Mybatis如何傳入多個(gè)參數(shù)的實(shí)現(xiàn)代碼

    Mybatis如何傳入多個(gè)參數(shù)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Mybatis如何傳入多個(gè)參數(shù)的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 快速入門Java中的Lambda表達(dá)式

    快速入門Java中的Lambda表達(dá)式

    Lambda作為函數(shù)式編程中的基礎(chǔ)部分,在其他編程語言中早就廣為使用,但在Java領(lǐng)域中發(fā)展較慢,直到j(luò)ava8,才開始支持Lambda。網(wǎng)上關(guān)于Lambda的教程很多,今天小編給大家分享一篇快速入手Lambda的教程。
    2016-08-08
  • Springboot項(xiàng)目啟動(dòng)時(shí)如何用命令動(dòng)態(tài)指定環(huán)境

    Springboot項(xiàng)目啟動(dòng)時(shí)如何用命令動(dòng)態(tài)指定環(huán)境

    這篇文章主要介紹了Springboot項(xiàng)目啟動(dòng)時(shí)如何用命令動(dòng)態(tài)指定環(huán)境的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java無限遞歸遍歷json對(duì)象問題

    java無限遞歸遍歷json對(duì)象問題

    這篇文章主要介紹了java無限遞歸遍歷json對(duì)象問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Spring Boot配置Swagger的實(shí)現(xiàn)代碼

    Spring Boot配置Swagger的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Spring Boot配置Swagger的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12

最新評(píng)論

缙云县| 翁牛特旗| 马关县| 福建省| 济南市| 义马市| 德昌县| 千阳县| 资兴市| 德令哈市| 甘肃省| 海盐县| 凤山县| 南通市| 高州市| 前郭尔| 新绛县| 原平市| 南投市| 穆棱市| 池州市| 临颍县| 洮南市| 庆阳市| 长顺县| 额济纳旗| 高碑店市| 乐陵市| 吉林市| 呼伦贝尔市| 年辖:市辖区| 峨眉山市| 阿勒泰市| 黔江区| 新建县| 曲麻莱县| 揭西县| 山西省| 星子县| 红原县| 乐东|