国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JDK自帶工具keytool生成ssl證書(轉(zhuǎn))

這篇具有很好參考價(jià)值的文章主要介紹了JDK自帶工具keytool生成ssl證書(轉(zhuǎn))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:
因?yàn)楣卷?xiàng)目客戶要求使用HTTPS的方式來保證數(shù)據(jù)的安全,所以木有辦法研究了下怎么生成ssl證書來使用https以保證數(shù)據(jù)安全。

百度了不少資料,看到JAVA的JDK自帶生成SSL證書的工具:keytool,外加看了同事的心得體會(huì),自己總結(jié)了一下具體的使用方法和使用過程中發(fā)現(xiàn)的問題及解決辦法。

1:什么是HTTPS?
HTTPS其實(shí)是有兩部分組成:HTTP + SSL / TLS,

也就是在HTTP上又加了一層處理加密信息的模塊,并且會(huì)進(jìn)行身份的驗(yàn)證。

問題:

Firebug和postman之類的瀏覽器調(diào)試工具,為什么獲取到的是明文?

解答:

SSL是對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密,針對(duì)的是傳輸過程的安全。?

firebug之類的瀏覽器調(diào)試工具,

因?yàn)樗麄兊玫降氖强蛻舳思用苤?解密之后的數(shù)據(jù),因此是明文的。

2:什么是自簽名證書?
就是自己生成的證書,并不是官方生成的證書。

除非是很正式的項(xiàng)目,否則使用自己簽發(fā)的證書即可,因?yàn)楣俜缴勺C書是要花錢滴。

3:進(jìn)入正題,使用JDK自帶工具KeyTool 生成自簽發(fā)證書!
第一步:為服務(wù)器生成證書
打開CMD命令行工具,cd到C盤根目錄或者是jdk的bin目錄下,如下圖所示:

使用keytool命令生成證書:

keytool?

-genkey?

-alias tomcat(別名)?

-keypass 123456(別名密碼)?

-keyalg RSA(算法)?

-keysize 1024(密鑰長(zhǎng)度)?

-validity 365(有效期,天單位)?

-keystore D:/keys/tomcat.keystore(指定生成證書的位置和證書名稱)?

-storepass 123456(獲取keystore信息的密碼)

方便復(fù)制版:

keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/keys/tomcat.keystore -storepass 123456

圖例:

回車執(zhí)行后如下圖:

點(diǎn)擊回車即可在D:/keys/文件夾內(nèi)生成名為:tomcat.keystore的文件。

成功后無提示信息

注意:

①D:/keys/ 目錄需要提前手動(dòng)創(chuàng)建好,否則會(huì)生成失敗

②提示輸入域名的時(shí)候不能輸入IP地址

問題①的錯(cuò)誤信息如下:

第二步:為客戶端生成證書
為瀏覽器生成證書,以便讓服務(wù)器來驗(yàn)證它。

為了能將證書順利導(dǎo)入至IE和Firefox,證書格式應(yīng)該是PKCS12,

因此,使用如下命令生成:

keytool?

-genkey?

-alias client?

-keypass 123456

-keyalg RSA?

-storetype PKCS12?

-keypass 123456?

-storepass 123456?

-keystore D:/keys/client.p12

方便復(fù)制版:

keytool -genkey -alias client1 -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -storetype PKCS12 -keystore D:/keys/client1.p12 -storepass 123456

圖例:

第二步余下操作步驟同第一步。

第三步:讓服務(wù)器信任客戶端證書
1、

由于不能直接將PKCS12格式的證書庫導(dǎo)入,

必須先把客戶端證書導(dǎo)出為一個(gè)單獨(dú)的CER文件,使用如下命令:

keytool -export -alias client -keystore D:/keys/client.p12 -storetype PKCS12 -keypass 123456 -file D:/keys/client.cer

注意:

Keypass:指定CER文件的密碼,但會(huì)被忽略,而要求重新輸入

2、

將該文件導(dǎo)入到服務(wù)器的證書庫,添加為一個(gè)信任證書:

keytool -import -v -file D:/keys/client.cer -keystore D:/keys/tomcat.keystor

e -storepass 123456

圖例:

完成之后通過list命令查看服務(wù)器的證書庫,

可以看到兩個(gè)證書,一個(gè)是服務(wù)器證書,一個(gè)是受信任的客戶端證書:

keytool -list -v -keystore D:/keys/tomcat.keystore

第四步:讓客戶端信任服務(wù)器證書
1、

由于是雙向SSL認(rèn)證,客戶端也要驗(yàn)證服務(wù)器證書,

因此,必須把服務(wù)器證書添加到瀏覽器的“受信任的根證書頒發(fā)機(jī)構(gòu)”。

由于不能直接將keystore格式的證書庫導(dǎo)入,

必須先把服務(wù)器證書導(dǎo)出為一個(gè)單獨(dú)的CER文件,使用如下命令:

keytool -keystore D:/keys/tomcat.keystore -export -alias tomcat6 -file D:/keys/server.cer

2、

雙擊server.cer文件,按照提示安裝證書,

將證書填入到“受信任的根證書頒發(fā)機(jī)構(gòu)”。

填入方法:

打開瀏覽器 ? - 工具 ?- ?internet選項(xiàng)-內(nèi)容- 證書-把中級(jí)證書頒發(fā)機(jī)構(gòu)里的www.localhost.com(該名稱即時(shí)你前面生成證書時(shí)填寫的名字與姓氏)證書導(dǎo)出來-再把導(dǎo)出來的證書導(dǎo)入 ?受信任的根頒發(fā)機(jī)構(gòu) ?就OK了。

第五步:配置Tomcat服務(wù)器
<Connector ?port="8443"

protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"

maxThreads="150"

scheme="https"

secure="true"

clientAuth="true"

sslProtocol="TLS"

keystoreFile="D:/keys/tomcat.keystore"

keystorePass="123456"

truststoreFile="D:/keys/tomcat.keystore"

truststorePass="123456" />

屬性說明:

clientAuth:設(shè)置是否雙向驗(yàn)證,默認(rèn)為false,設(shè)置為true代表雙向驗(yàn)證

keystoreFile:服務(wù)器證書文件路徑

keystorePass:服務(wù)器證書密碼

truststoreFile:用來驗(yàn)證客戶端證書的根證書,此例中就是服務(wù)器證書

truststorePass:根證書密碼

注意:

① 設(shè)置clientAuth屬性為True時(shí),需要手動(dòng)導(dǎo)入客戶端證書才能訪問。

② 要訪問https請(qǐng)求 需要訪問8443端口,訪問http請(qǐng)求則訪問Tomcat默認(rèn)端口(你自己設(shè)置的端口,默認(rèn)8080)即可。

總結(jié):
經(jīng)過以上五步,你使用HTTPS 端口為8443 進(jìn)行訪問的時(shí)候 就是經(jīng)過SSL信息加密,不怕被截獲了。

通話的雙方,必須是都擁有證書的端,才能進(jìn)行會(huì)話,換句話說,就是只有安裝了咱證書的客戶端,才能與服務(wù)器通信。

小貼士:

強(qiáng)制 https 訪問

在 tomcat /conf/web.xml 中的 </welcome- file-list> 后面加上這

<login-config> ? ?
<!-- Authorization setting for SSL --> ? ?
<auth-method>CLIENT-CERT</auth-method> ? ?
<realm-name>Client Cert Users-only Area</realm-name> ? ?
</login-config> ? ?
<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>?
?

完成以上步驟后,在瀏覽器中輸入http的訪問地址也會(huì)自動(dòng)轉(zhuǎn)換為https了。

附錄1:
keytool常用命令?

-alias ? ? ? 產(chǎn)生別名?

-keystore ? ?指定密鑰庫的名稱(就像數(shù)據(jù)庫一樣的證書庫,可以有很多個(gè)證書,cacerts這個(gè)文件是jre自帶的,?

? ? ? ? ? ? ?你也可以使用其它文件名字,如果沒有這個(gè)文件名字,它會(huì)創(chuàng)建這樣一個(gè))?

-storepass ? 指定密鑰庫的密碼?

-keypass ? ? 指定別名條目的密碼?

-list ? ? ? ?顯示密鑰庫中的證書信息?

-v ? ? ? ? ? 顯示密鑰庫中的證書詳細(xì)信息?

-export ? ? ?將別名指定的證書導(dǎo)出到文件?

-file ? ? ? ?參數(shù)指定導(dǎo)出到文件的文件名?

-delete ? ? ?刪除密鑰庫中某條目?

-import ? ? ?將已簽名數(shù)字證書導(dǎo)入密鑰庫?

-keypasswd ? 修改密鑰庫中指定條目口令?

-dname ? ? ? 指定證書擁有者信息?

-keyalg ? ? ?指定密鑰的算法?

-validity ? ?指定創(chuàng)建的證書有效期多少天?

-keysize ? ? 指定密鑰長(zhǎng)度?

使用說明:?

導(dǎo)入一個(gè)證書命令可以如下:?

keytool -import -keystore cacerts -storepass 666666 -keypass 888888 -alias alibabacert -file C:\alibabajava\cert\test_root.cer?

其中-keystore cacerts中的cacerts是jre中默認(rèn)的證書庫名字,也可以使用其它名字?

-storepass 666666中的666666是這個(gè)證書庫的密碼?

-keypass 888888中的888888是這個(gè)特定證書的密碼?

-alias alibabacert中的alibabacert是你導(dǎo)入證書的別名,在其它操作命令中就可以使用它?

-file C:\alibabajava\cert\test_root.cer中的文件路徑就是要導(dǎo)入證書的路徑?

瀏覽證書庫里面的證書信息,可以使用如下命令:?

keytool -list -v -alias alibabacert -keystore cacerts -storepass 666666?

要?jiǎng)h除證書庫里面的某個(gè)證書,可以使用如下命令:?

keytool -delete -alias alibabacert -keystore cacerts -storepass 666666?

要導(dǎo)出證書庫里面的某個(gè)證書,可以使用如下命令:?

keytool -export -keystore cacerts -storepass 666666 -alias alibabacert -file F:\alibabacert_root.cer?

要修改某個(gè)證書的密碼(注意:有些數(shù)字認(rèn)證沒有私有密碼,只有公匙,這種情況此命令無效)?

這個(gè)是交互式的,在輸入命令后,會(huì)要求你輸入密碼?

keytool -keypasswd -alias alibabacert -keystore cacerts?

這個(gè)不是交互式的,輸入命令后直接更改?

Keytool -keypasswd -alias alibabacert -keypass 888888 -new 123456 -storepass 666666 -keystore cacerts
————————————————
版權(quán)聲明:本文為CSDN博主「Mr_haining」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Mrs_haining/article/details/116162100

JDK自帶工具keytool生成ssl證書_Mr_haining的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-734515.html

到了這里,關(guān)于JDK自帶工具keytool生成ssl證書(轉(zhuǎn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Java可執(zhí)行命令】(十一)Java 密鑰庫和證書管理工具keytool:玩轉(zhuǎn)密鑰庫和證書管理,深入解析keytool工具的應(yīng)用與技巧~

    【Java可執(zhí)行命令】(十一)Java 密鑰庫和證書管理工具keytool:玩轉(zhuǎn)密鑰庫和證書管理,深入解析keytool工具的應(yīng)用與技巧~

    Java的 keytool 命令是用于管理和操作Java密鑰庫( KeyStore )的工具。它的設(shè)計(jì)目的是為了方便Java開發(fā)人員生成、管理和操作數(shù)字證書,以及實(shí)現(xiàn)對(duì)保護(hù)資源進(jìn)行安全訪問的加密和身份驗(yàn)證。 ?? 一些相關(guān)概念? 密鑰庫(KeyStore):它是存儲(chǔ)密鑰和證書的容器,可以包含私鑰、公

    2024年02月12日
    瀏覽(15)
  • 【ssl認(rèn)證、證書】SSL 證書基本概念、證書格式、openssl和keytool的區(qū)別

    【ssl認(rèn)證、證書】SSL 證書基本概念、證書格式、openssl和keytool的區(qū)別

    相關(guān)文章: //-----------Java SSL begin---------------------- 【ssl認(rèn)證、證書】SSL雙向認(rèn)證和SSL單向認(rèn)證的區(qū)別(示意圖) 【ssl認(rèn)證、證書】java中的ssl語法API說明(SSLContext)、與keytool 工具的聯(lián)系 【ssl認(rèn)證、證書】SSL雙向認(rèn)證java實(shí)戰(zhàn)、keytool創(chuàng)建證書 【ssl認(rèn)證、證書】Wireshark抓包分析 【s

    2024年02月02日
    瀏覽(24)
  • 【SSL】用Certbot生成免費(fèi)HTTPS證書

    【SSL】用Certbot生成免費(fèi)HTTPS證書

    服務(wù)器:CentOS7.x 示例域名: www.example.com 域名對(duì)應(yīng)的web站點(diǎn)目錄: /usr/local/openresty/nginx/html 注意,示例域名 www.exanple.com在certbot機(jī)器上一定要解析在公網(wǎng)ip,而不是解析在內(nèi)網(wǎng)ip,否則會(huì)報(bào)錯(cuò)無法解析: Let’s Encrypt需要驗(yàn)證網(wǎng)站的所有權(quán)才能頒發(fā)證書, 官方稱之為challenge(挑戰(zhàn)

    2024年02月08日
    瀏覽(118)
  • MAC: 自己制作https的ssl證書(自己簽發(fā)免費(fèi)ssl證書)(OPENSSL生成SSL自簽證書)

    MAC: 自己制作https的ssl證書(自己簽發(fā)免費(fèi)ssl證書)(OPENSSL生成SSL自簽證書)

    現(xiàn)在https大行其道, ssl又是必不可少的環(huán)節(jié). 今天就教大家用開源工具openssl自己生成ssl證書的文件和私鑰 MAC電腦 openssl工具自行搜索安裝 1、終端執(zhí)行命令 2、輸入密碼,這里會(huì)輸入兩次. 填寫一樣即可. 隨意填寫一個(gè). 下一步就會(huì)刪除這個(gè)密碼 3、輸入密碼,這里會(huì)輸入兩次. 填寫

    2024年04月14日
    瀏覽(232)
  • 【SSL】ssl證書簡(jiǎn)介、ssl證書生成工具與ssl證書生成步驟

    【SSL】ssl證書簡(jiǎn)介、ssl證書生成工具與ssl證書生成步驟

    SSL證書是數(shù)字證書的一種,類似于駕駛證、護(hù)照和營(yíng)業(yè)執(zhí)照的電子副本。因?yàn)榕渲迷诜?wù)器上,也稱為SSL服務(wù)器證書。 SSL證書就是遵守 SSL協(xié)議,由受信任的數(shù)字證書頒發(fā)機(jī)構(gòu)CA,在驗(yàn)證服務(wù)器身份后頒發(fā),具有服務(wù)器身份驗(yàn)證和數(shù)據(jù)傳輸加密功能。 SSL證書通過在客戶端瀏覽

    2024年02月10日
    瀏覽(19)
  • keytool生成免費(fèi)SSL

    Keytool是用于管理**和證書的工具,位于%JAVA_HOME%/bin目錄。 使用JDK的keytool工具 1.keytool在jdk的bin目錄下 2.打開keytool所在的bin目錄,然后在上面的路徑顯示框中輸入CMD,然后回車,即可在當(dāng)前文件夾下打開命令提示符,并且路徑是當(dāng)前文件夾。 3.生成數(shù)字文件 在命令行輸入 key

    2024年02月13日
    瀏覽(20)
  • Spring Boot | 使用mkcert本地生成SSL證書配置后端接口為HTTPS協(xié)議

    Spring Boot | 使用mkcert本地生成SSL證書配置后端接口為HTTPS協(xié)議

    Tips:本篇博客是 Windows 版本的使用教程,cmd 中執(zhí)行的命令前綴是下載的軟件名稱,需要改成自己下載軟件的名稱! 首先去 GitHub 倉庫中下載軟件,下載完成后將文件保存在英文路徑下的文件夾,之后以管理員權(quán)限運(yùn)行 cmd 窗口,跳轉(zhuǎn)至軟件路徑下。 在 cmd 窗口中執(zhí)行以下命令

    2024年02月12日
    瀏覽(30)
  • mac制作ssl證書|生成自簽名證書,nodejs+express在mac上搭建https+wss(websocket)服務(wù)器

    mac制作ssl證書|生成自簽名證書,nodejs+express在mac上搭建https+wss(websocket)服務(wù)器

    mac 自帶 openssl 所以沒必要像 windows 一樣先安裝 openssl,直接生成即可 生成 key 讓輸入兩次密碼,隨便,但是兩次得是一樣的 移除密碼 生成 csr Country Name (2 letter code) [ 國(guó)家 ]:CN State or Province Name (full name) [ 省份 ]:Beijing Locality Name (eg, city) [ 城市 ]:Beijing Organization Name (eg, company)

    2024年02月09日
    瀏覽(19)
  • Java get/post的https請(qǐng)求忽略ssl證書認(rèn)證

    unable to find valid certification path to requested target 工具類 使用方法

    2024年02月11日
    瀏覽(24)
  • 【Java開發(fā)】Spring Cloud 11:Gateway 配置 ssl 證書(https、http、域名訪問)

    【Java開發(fā)】Spring Cloud 11:Gateway 配置 ssl 證書(https、http、域名訪問)

    最近研究給微服務(wù)項(xiàng)目配置 ssl 證書,如此才可以對(duì)接微信小程序(需要使用 https 請(qǐng)求)。傳統(tǒng)單體項(xiàng)目來說,首先往項(xiàng)目中添加證書文件,然后在配置文件中配置 ssl 證書路徑、密碼等相關(guān)信息;那么微服務(wù)這么多項(xiàng)目,總不能一個(gè)個(gè)配置 ssl 證書,最后發(fā)現(xiàn)可以直接通過網(wǎng)

    2024年02月08日
    瀏覽(87)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包