《網絡(二):簡單易懂的https雙向認證自制安全證書和tomcat配置》

網絡(一):簡單易懂的Https工作原理

網絡(二):簡單易懂的https雙向認證自制安全證書和tomcat配置

網絡(三):簡單易懂的Android平臺Okhttp/Retrofit https證書配置

1芒率、環(huán)境

電腦環(huán)境配置%JAVA_HOME%/bin/keytool.exe(jdk下一個工具)
windwos10
tomcat 7.0
IE 11

2裹虫、何為證書

以下兩張截圖是瀏覽器查看證書的信息贷岸,它包含了各種信息头镊。

image.png

image.png

下面將列出幾個后相關綴名的證書和它的簡單介紹
keystore:
jks:數(shù)字證書庫。
p12:是PKCS12的縮寫羔砾。同樣是一個存儲私鑰的證書庫负间,由.jks文件導出的,用戶在PC平臺安裝姜凄,用于標示用戶的身份政溃。
cer:俗稱數(shù)字證書,目的就是用于存儲公鑰證書态秧,任何人都可以獲取這個文件 董虱。
bks:由于Android平臺不識別.keystore和.jks格式的證書庫文件,因此Android平臺引入一種的證書庫格式申鱼,BKS愤诱。

注:證書之間的轉換可以用工具portecle來進行轉換;在https中證書扮演者重要角色捐友,它保證頒發(fā)機構淫半、有效期、加密密鑰楚殿、加密算法等信息撮慨。

3、要生成的證書

1)https雙向認證:即客戶需要對服務器端身份進行認證脆粥,服務器端也需要對客戶端身份進行認證

2)為客戶端和服務器生成key,然后由key導出各自的證書

下面就開始生成個key和導出對應的證書砌溺,每一個步驟出命令和執(zhí)行的截圖。

為服務端生成keystore

keytool -genkeypair -alias server -keyalg RSA -validity 3650  -keystore  F:\server.keystore
image.png

導出服務器證書

keytool -export -alias server -file F:\server.cer -keystore F:\server.keystore 
image.png
image.png

生成客戶端key

keytool -genkeypair -alias client -keyalg RSA -validity 3650 -keystore F:\client.jks
image.png

導出客戶端證書

keytool -export -alias client -file F:\client.cer -keystore F:\client.jks 
image.png

3)證書交換
證書互換的原因:只有你中有我变隔、我中有你规伐,在雙向認證時,我們才彼此認識匣缘,這個步驟非常重要2痢!肌厨!

將服務端的證書保存到 publickeys.jks中給客戶端用識別服務端時用

keytool -import -v -alias server -file F:\server.cer -keystore F:\publickeys.jks
image.png

將客戶端的證書保存到服務端的key中培慌,給服務端識別客戶端時用


image.png

你也可以通過list命令查看服務器的證書庫,可以看到兩個證書柑爸,一個是服務器證書吵护,一個是受信任的客戶端證書


image.png

至此,我們?yōu)榭蛻舳丝煞斩松闪嗣荑€表鳍,以及導出各自的證書馅而,并且為客戶端的密鑰和服務端的密鑰導入了對方的證書(雙向認證時用),接下來就要開始配置tomcat服務器了譬圣。

tomcat配置

1)首先把上述生成好的服務端密鑰放到tomcat的conf目錄下瓮恭,并修改server.xml文件配置,配置代碼如下:

  //其他配置省略...
   <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000" redirectPort="443" 
               />

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="conf/server.keystore" keystorePass="123321"
               truststoreFile="conf/server.keystore" truststorePass="123321"/>
                
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

http的默認端口是80厘熟,https的默認端口是443屯蹦,不這樣配置會訪問不到服務器。

2)修改web.xml文件配置绳姨,在最末尾添加如下配置颇玷,代碼如下,讓http發(fā)起得請求交給https處理就缆。

<security-constraint>      
    <!-- Authorization setting for SSL -->      
        <web-resource-collection >          
            <web-resource-name >SSL</web-resource-name>          
            <url-pattern>/*</url-pattern>      
        </web-resource-collection>      
        <user-data-constraint>          
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>      
        </user-data-constraint>
    </security-constraint>

這樣tomcat的配置就好了帖渠,非常簡單,重啟服務器即可

瀏覽器訪問https

IE瀏覽器


image.png
image.png

接下來就需要為PC端導入相關的證書了竭宰,由于PC瀏覽器中存儲的密鑰的正式格式為p12空郊,所以還需要把客戶端的證書jks格式轉為p12,證書的轉換可以使用portecle工具(具體使用的百度一下就會很對資料了)切揭;客戶端需要導入兩個證書狞甚,一個是存儲自己密鑰的key,一個是服務端為客戶端提供的公鑰證書,用與客戶對服務端的身份進行識別廓旬,證書的導入每一個過程都有截圖哼审,導入后重啟服務器即可。

1)安裝客戶端證書

image.png

image.png

image.png
image.png

2)安裝服務端證書

image.png
image.png
image.png
image.png

最后請求服務器返回結果


image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市涩盾,隨后出現(xiàn)的幾起案子十气,更是在濱河造成了極大的恐慌,老刑警劉巖春霍,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砸西,死亡現(xiàn)場離奇詭異,居然都是意外死亡址儒,警方通過查閱死者的電腦和手機芹枷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莲趣,“玉大人鸳慈,你說我怎么就攤上這事⌒。” “怎么了蝶涩?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長絮识。 經常有香客問我绿聘,道長,這世上最難降的妖魔是什么次舌? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任熄攘,我火速辦了婚禮,結果婚禮上彼念,老公的妹妹穿的比我還像新娘挪圾。我一直安慰自己,他們只是感情好逐沙,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布哲思。 她就那樣靜靜地躺著,像睡著了一般吩案。 火紅的嫁衣襯著肌膚如雪棚赔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天徘郭,我揣著相機與錄音靠益,去河邊找鬼。 笑死残揉,一個胖子當著我的面吹牛胧后,可吹牛的內容都是我干的。 我是一名探鬼主播抱环,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼壳快,長吁一口氣:“原來是場噩夢啊……” “哼纸巷!你這毒婦竟也來了?” 一聲冷哼從身側響起眶痰,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤村象,失蹤者是張志新(化名)和其女友劉穎郊尝,沒想到半個月后桃序,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜡饵,經...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡条辟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年黔夭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羽嫡。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡本姥,死狀恐怖,靈堂內的尸體忽然破棺而出杭棵,到底是詐尸還是另有隱情婚惫,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布魂爪,位于F島的核電站先舷,受9級特大地震影響,放射性物質發(fā)生泄漏滓侍。R本人自食惡果不足惜蒋川,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撩笆。 院中可真熱鬧捺球,春花似錦、人聲如沸夕冲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歹鱼。三九已至泣栈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弥姻,已是汗流浹背秩霍。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蚁阳,地道東北人铃绒。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像螺捐,于是被迫代替她去往敵國和親颠悬。 傳聞我的和親對象是個殘疾皇子矮燎,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內容