為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2018-06 文章編輯:小燈 瀏覽次數(shù):5077
作者:燁竹
HTTP的認(rèn)證方式
BASIC 認(rèn)證(基本認(rèn)證)
DIGEST 認(rèn)證(摘要認(rèn)證)
SSL 客戶端認(rèn)證
FormBase 認(rèn)證(基于表單認(rèn)證)
1.基本認(rèn)證(basic authentication)
--> 普通 GET 請(qǐng)求
<-- 401 響應(yīng)碼拒絕請(qǐng)求,攜帶響應(yīng)頭 WWW-Authenticate 描述保護(hù)區(qū)域 和 認(rèn)證算法
--> 請(qǐng)求攜帶 Authorization 頭,指明認(rèn)證算法和用戶名密碼
<-- 200 相應(yīng)2.摘要認(rèn)證
DIGEST認(rèn)證同樣使用質(zhì)詢/響應(yīng)的方式(challenge / response),但不會(huì)像 BASIC 認(rèn)證那樣直接發(fā)送明文密碼,但是和 HTTPS 的客戶端認(rèn)證相比仍舊很弱
基本認(rèn)證 和 摘要認(rèn)證 都是一種無(wú)狀態(tài)的認(rèn)證方式,就是不需要服務(wù)器端保存必要的session,所以也沒(méi)有session失效期??蛻舳嗣看味夹枰獙⒚艽a和用戶名發(fā)送給服務(wù)器來(lái)完成認(rèn)證,,而且用戶名和密碼是保存在瀏覽器進(jìn)程的內(nèi)存中的,也就是只有當(dāng)瀏覽器關(guān)閉的時(shí)候,用戶名和密碼也隨之刪除,才表示這次服務(wù)和認(rèn)證結(jié)束,下一次請(qǐng)求需要重新輸入用戶名和密碼。
這兩種方式都是瀏覽器產(chǎn)生輸入用戶名和密碼的登錄框。Basic認(rèn)證采用了Base64編碼,攻擊者很容易獲取http請(qǐng)求,然后解碼請(qǐng)求就可以獲取用戶名和密碼,沒(méi)有安全性可言;
而Digest認(rèn)證采用一中NONCE隨機(jī)字符串,用戶的每次認(rèn)證都需要哈希和MD5(用戶名和密碼),并加入這個(gè)鹽值,客戶端和服務(wù)器端每次的NONCE都是不一樣的,這樣就保證了認(rèn)證的安全性和不可重放性。
這里的NONCE并不是Session保存的一個(gè)字符串,這樣就違背了無(wú)狀態(tài)性特性3.SSL 客戶端認(rèn)證
SSL 客戶端認(rèn)證是借由 HTTPS 的客戶端證書(shū)完成認(rèn)證的方式。憑借客戶端證書(shū)(詳見(jiàn) HTTPS加密機(jī)制以及數(shù)字證書(shū))認(rèn)證,服務(wù)器可確認(rèn)訪問(wèn)是否來(lái)自已登陸的客戶端。
SSL 客戶端認(rèn)證步驟:
為達(dá)到 SSL 客戶端認(rèn)證的目的,需要事先將客戶端證書(shū)分發(fā)給客戶端,且客戶端必須安裝此證書(shū)。
- 接收到需要認(rèn)證資源的請(qǐng)求,服務(wù)器會(huì)發(fā)送 Certificate Request 報(bào)文,要求客戶端提供客戶端證書(shū)。
- 用戶選擇將發(fā)送的客戶端證書(shū)后,客戶端會(huì)把客戶端證書(shū)信息以 Client Certificate 報(bào)文方式發(fā)送給服務(wù)器。
- 服務(wù)器驗(yàn)證客戶端證書(shū),驗(yàn)證通過(guò)后方可領(lǐng)取證書(shū)內(nèi)客戶端的公開(kāi)密鑰,然后開(kāi)始 HTTPS 加密通信。
4.表單認(rèn)證
基于表單的認(rèn)證方法并不是在 HTTP 協(xié)議中定義的,客戶端會(huì)向服務(wù)器上 Web 應(yīng)用發(fā)送登錄信息,按登錄信息的驗(yàn)證結(jié)果認(rèn)證。
Https
1.RSA:對(duì)極大整數(shù)做因數(shù)分解的難度決定了RSA算法的可靠性
非對(duì)稱加密算法
乙方生成兩把密鑰(公鑰和私鑰)。公鑰是公開(kāi)的,任何人都可以獲得,私鑰則是保密的。
甲方獲取乙方的公鑰,然后用它對(duì)信息加密。
乙方得到加密后的信息,用私鑰解密。
公鑰可以解密私鑰加密的數(shù)據(jù),私有也可以解密公鑰加密的數(shù)據(jù)在線測(cè)試 公鑰/私鑰 的 加密/解密
在線生成密鑰對(duì)
在線 RSA 公鑰加密解密
在線 RSA 私鑰加密解密Read More
阮一峰的網(wǎng)絡(luò)日志 RSA算法原理(一)
阮一峰的網(wǎng)絡(luò)日志 RSA算法原理(二)2.SSL握手
生成對(duì)話密鑰一共需要三個(gè)隨機(jī)數(shù)
握手之后的對(duì)話使用"對(duì)話密鑰"加密(對(duì)稱加密),服務(wù)器的公鑰和私鑰只用于加密和解密"對(duì)話密鑰"(非對(duì)稱加密),無(wú)其他作用
服務(wù)器公鑰放在服務(wù)器的數(shù)字證書(shū)之中Read More
SSL/TLS協(xié)議運(yùn)行機(jī)制的概述
圖解SSL/TLS協(xié)議3.證書(shū)申請(qǐng)
術(shù)語(yǔ)
CA : 電子商務(wù)認(rèn)證授權(quán)機(jī)構(gòu)(Certificate Authority)
CSR : 證書(shū)簽名請(qǐng)求(Certificate Signing Request) 是簽發(fā)證書(shū)時(shí)的重要材料,它可以保證私鑰安全的情況下通過(guò)遠(yuǎn)端CA簽發(fā)證書(shū)。
CRT : 證書(shū)文件(Certificate [s?r?t?f?k?t] )制作 CSR 文件
在申請(qǐng)數(shù)字證書(shū)之前,必須先生成證書(shū)私鑰和證書(shū)請(qǐng)求文件(CSR,Cerificate Signing Request),
CSR是您的公鑰證書(shū)原始文件,包含了您的服務(wù)器信息和您的單位信息,需要提交給CA認(rèn)證中心。
在生成CSR文件時(shí)會(huì)同時(shí)生成私鑰文件,需妥善保管和備份
生成CSR文件時(shí),一般需要輸入以下信息(中文需要UTF8編碼):
Organization Name(O)
:申請(qǐng)單位名稱法定名稱,可以是中文或英文
Organization Unit(OU)
:申請(qǐng)單位的所在部門,可以是中文或英文
Country Code(C)
:申請(qǐng)單位所屬國(guó)家,只能是兩個(gè)字母的國(guó)家碼,如中國(guó)只能是:CN
State or Province(S)
:申請(qǐng)單位所在省名或州名,可以是中文或英文
Locality(L)
:申請(qǐng)單位所在城市名,可以是中文或英文
Common Name(CN)
:申請(qǐng)SSL證書(shū)的具體網(wǎng)站域名使用 OpenSSL 制作
# -new 指定生成一個(gè)新的CSR # -out certificate.csr 輸出文件為 當(dāng)前目錄下 ca.kail.xyz.csr # - newkey rsa:2048 指定私鑰類型和長(zhǎng)度 # - nodes指定私鑰文件不被加密 # -keyout 生成私鑰輸出文件為 當(dāng)前目錄下 ca.kail.xyz.key $ openssl req -new -out ca.kail.xyz.csr -newkey rsa:2048 -nodes -keyout ca.kail.xyz.key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:shanghai Locality Name (eg, city) [Default City]:shanghai Organization Name (eg, company) [Default Company Ltd]:kail Organizational Unit Name (eg, section) []:kail-ca Common Name (eg, your name or your server's hostname) []:ca.kail.xyz Email Address []:Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
顯示 csr 文件內(nèi)容
openssl req -in ca.kail.xyz.csr -text
使用 Java keytool 工具制作
使用 Keytool 工具生成 jks(Java Key Store) 文件
jks 是一個(gè)密碼保護(hù)的文件,存放私鑰和證書(shū)# -keyalg 指定密鑰類型,必須是 RSA # -alias 指定證書(shū)別名,可自定義 # -keysize 指定密鑰長(zhǎng)度為 2048 # -keystore 指定證書(shū)文件保存路徑keytool -genkey -alias ca.kail.xyz -keyalg RSA -keysize 2048 -keystore ./ca.kail.xyz.jks
輸入命令后會(huì)有下面的交互式操作:
輸入密鑰庫(kù)口令: 再次輸入新口令: 您的名字與姓氏是什么? [Unknown]:ca.kail.xyz 您的組織單位名稱是什么? [Unknown]:dev 您的組織名稱是什么? [Unknown]:kail 您所在的城市或區(qū)域名稱是什么? [Unknown]:Shanghai 您所在的省/市/自治區(qū)名稱是什么? [Unknown]:Shanghai 該單位的雙字母國(guó)家/地區(qū)代碼是什么? [Unknown]:CN CN=ca.kail.xyz, OU=dev, O=kail, L=Shanghai, ST=Shanghai, C=CN是否正確? [否]:Y輸入 <ca.kail.xyz> 的密鑰口令 (如果和密鑰庫(kù)口令相同, 按回車):
通過(guò) jks 文件生成證書(shū)請(qǐng)求
# sigalg指定摘要算法,使用 SHA256withRSA。 # alias指定別名,必須與 keystore 文件中的證書(shū)別名一致。 # keystore指定證書(shū)文件。 # file指定證書(shū)請(qǐng)求文件(CSR)。keytool -certreq -sigalg SHA256withRSA -alias ca.kail.xyz -keystore ./ca.kail.xyz.jks -file ./ca.kail.xyz.csr
從 jks 文件 獲取 私鑰
- 將 JKS 格式證書(shū)轉(zhuǎn)換成 PFX 格式
keytool -importkeystore -srckeystore ./ca.kail.xyz.jks -destkeystore ./ca.kail.xyz.pfx -srcstoretype JKS -deststoretype PKCS12
- PFX 文件轉(zhuǎn)成 pem 文件
openssl pkcs12 -in ca.kail.xyz.pfx -nodes -out ca.kail.xyz.pem
- pem 文件 中提取出私鑰
openssl rsa -in ca.kail.xyz.pem -out ca.kail.xyz.key
主流數(shù)字證書(shū)都有哪些格式? 介紹了各種格式之間的轉(zhuǎn)換
自制證書(shū):
keytool
上面 “從 jks 文件 獲取 私鑰”中的 第2步,生成的 ca.kail.xyz.pem 文件, 里面包含 私鑰和證書(shū)信息,編輯刪除多余的部分 保留
-----BEGIN CERTIFICATE-----
和-----END CERTIFICATE-----
中間的內(nèi)容,后綴名改為.csr
即可。
Windows 下 雙擊打開(kāi),可查看證書(shū)內(nèi)容。OpenSSL
openssl x509 -req -days 365 -in ca.kail.xyz.csr -signkey ca.kail.xyz.key -out ca.kail.xyz.crt
申請(qǐng)授信證書(shū)
通過(guò) SSL.md 免費(fèi)獲取
參見(jiàn) 快速獲取免費(fèi)SSL證書(shū)
X509 文件擴(kuò)展名DER、PEM、CRT和CER這些擴(kuò)展名經(jīng)常令人困惑。很多人錯(cuò)誤地認(rèn)為這些擴(kuò)展名可以互相代替。
盡管的確有時(shí)候有些擴(kuò)展名是可以互換的,但是最好你能確定證書(shū)是如何編碼的,進(jìn)而正確地標(biāo)識(shí)它們。正確地標(biāo)識(shí)證書(shū)有助于證書(shū)的管理。編碼 (也用于擴(kuò)展名)
.DER
擴(kuò)展名DER用于二進(jìn)制DER編碼的證書(shū)。比較合適的說(shuō)法是 “我有一個(gè)DER編碼的證書(shū)”,而不是“我有一個(gè)DER證書(shū)”。
.PEM
擴(kuò)展名PEM用于ASCII(Base64)編碼的各種X.509 v3 證書(shū)。文件開(kāi)始由一行"—– BEGIN …“開(kāi)始。常用的擴(kuò)展名
.CRT
擴(kuò)展名CRT用于證書(shū)。證書(shū)可以是DER編碼,也可以是PEM編碼。擴(kuò)展名CER和CRT幾乎是同義詞。這種情況在各種unix/linux系統(tǒng)中很常見(jiàn)。
.CER
CRT證書(shū)的微軟型式??梢杂梦④浀墓ぞ甙袰RT文件轉(zhuǎn)換為CER文件(CRT和CER必須是相同編碼的,DER或者PEM)。
擴(kuò)展名為CER的文件可以被IE識(shí)別并作為命令調(diào)用微軟的cryptoAPI(具體點(diǎn)就是rudll32.exe cryptext.dll, CyrptExtOpenCER),進(jìn)而彈出一個(gè)對(duì)話框來(lái)導(dǎo)入并/或查看證書(shū)內(nèi)容。
.KEY
擴(kuò)展名KEY用于PCSK#8
的公鑰和私鑰。這些公鑰和私鑰可以是DER編碼或者PEM編碼。CRT文件和CER文件只有在使用相同編碼的時(shí)候才可以安全地相互替代。
來(lái)自: http://blog.sina.com.cn/s/blog_a9303fd90101jmtx.html
Read More
如何制作CSR文件?
阿里云證書(shū)服務(wù)
快速獲取免費(fèi)SSL證書(shū)
https://ssl.md
Let's Encrypt,免費(fèi)好用的 HTTPS 證書(shū)
acme.sh 自動(dòng)更新證書(shū)4.Nginx 配置 HTTPS
證書(shū)文件獲?。簠⒁?jiàn) [證書(shū)申請(qǐng)]
判斷 Nginx 有沒(méi)有啟動(dòng) SSL 模塊
nginx -V
查看
configure arguments
中 如果有with-http_ssl_module
則表明開(kāi)啟了 SSL 模塊。安裝時(shí) 啟用 SSL 模塊
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-openssl=/usr/local/openssl-1.1.0g make && make install
nginx.conf
nginx/conf
文件夾下新建文件夾cert
, 放入ca.kail.xyz.crt
證書(shū)文件 和ca.kail.xyz.key
私鑰server { listen 443 ssl; server_nameca.kail.xyz; ssl_certificatecert/ca.kail.xyz.crt; ssl_certificate_keycert/ca.kail.xyz.key; ssl_session_cacheshared:SSL:1m; ssl_session_timeout5m; ssl_ciphersHIGH:!aNULL:!MD5; ssl_prefer_server_cipherson; location / { root html; indexindex.html index.htm; autoindex on;} }
強(qiáng)制 HTTPS
server { listen 80; server_name ca.kail.xyz; rewrite ^(.*) https://$server_name$1 permanent; }
Read More
CentOS 7.4 實(shí)例配置 Nginx + HTTPS 服務(wù)
nginx使用ssl模塊配置HTTPS支持
nginx配置ssl加密(單/雙向認(rèn)證、部分https)
本頁(yè)內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過(guò)網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁(yè)中由涉嫌抄襲的內(nèi)容,請(qǐng)及時(shí)與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會(huì)在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://jstctz.cn/20400.html
上一篇:滲透利器——Burp的使用(二) 下一篇:HTTP和HTTPS相關(guān)開(kāi)發(fā)語(yǔ)言
java 使用ssl,tls 證書(shū)認(rèn)證
日期:2018-04 瀏覽次數(shù):6821
nginx配置ssl雙向證書(shū)
日期:2017-02 瀏覽次數(shù):3495
CA和證書(shū),SSL
日期:2017-09 瀏覽次數(shù):3727
阿里云申請(qǐng)免費(fèi)SSL(CA)證書(shū)(二)
日期:2017-12 瀏覽次數(shù):3582
certbot配置網(wǎng)站SSL安全證書(shū)
日期:2018-12 瀏覽次數(shù):4887
HTTPS協(xié)議:概述以及證書(shū)申請(qǐng)流程
日期:2016-12 瀏覽次數(shù):4644
菜鳥(niǎo)教程——http和Https、SSL
日期:2017-07 瀏覽次數(shù):13694
一文讀懂Go的net/http標(biāo)準(zhǔn)庫(kù)
日期:2017-12 瀏覽次數(shù):3568
微信、iOS、安卓如何配置HTTPS加密
日期:2018-06 瀏覽次數(shù):4321
Nginx 配置 HTTPS 服務(wù)器
日期:2018-05 瀏覽次數(shù):4501
阿里云申請(qǐng)免費(fèi)SSL(CA)證書(shū)(一)
日期:2017-12 瀏覽次數(shù):3610
SSL和 HTTPS
日期:2017-06 瀏覽次數(shù):4033
阿里云證書(shū)服務(wù)使用教程(下篇)
日期:2018-01 瀏覽次數(shù):4004
SSL雙向認(rèn)證以及證書(shū)的制作和使用
日期:2016-12 瀏覽次數(shù):3960
微信小程序HTTPS證書(shū)申請(qǐng)搭建教程
日期:2018-08 瀏覽次數(shù):4473
【譯】如何創(chuàng)建SSL自簽名證書(shū)
日期:2017-12 瀏覽次數(shù):3778
安裝SLL證書(shū)(HTTPS)
日期:2016-09 瀏覽次數(shù):6540
網(wǎng)站大限將至?速效救心丸看這里!
日期:2018-07 瀏覽次數(shù):3261
HTTPS請(qǐng)求證書(shū)的種類
日期:2016-12 瀏覽次數(shù):3281
阿里云免費(fèi)證書(shū)DV SSL申請(qǐng)過(guò)程記錄
日期:2018-10 瀏覽次數(shù):3432
生產(chǎn)ssl證書(shū)
日期:2018-10 瀏覽次數(shù):3537
iOS安全系列之二:HTTPS進(jìn)階
日期:2018-09 瀏覽次數(shù):3625
EV SSL證書(shū)
日期:2018-02 瀏覽次數(shù):3649
蘋(píng)果網(wǎng)店 SSL 證書(shū)的烏龍?
日期:2015-05 瀏覽次數(shù):3576
SSL證書(shū)生成
日期:2018-09 瀏覽次數(shù):3362
HTTPS時(shí)代全面來(lái)臨!你的網(wǎng)站安全嗎?
日期:2018-06 瀏覽次數(shù):3485
git忽略ssl證書(shū)
日期:2017-02 瀏覽次數(shù):3927
安裝ssl證書(shū)失敗的一種原因
日期:2018-02 瀏覽次數(shù):4386
HTTPS證書(shū)
日期:2018-02 瀏覽次數(shù):4248
https-為你的博客加入SSL
日期:2016-12 瀏覽次數(shù):3624
最新網(wǎng)站建設(shè)案例Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.
- QQ咨詢
在線咨詢- 官方微信
- 聯(lián)系電話
- 座機(jī)0755-29185426
- 手機(jī)13699882642
- 預(yù)約上門
- 返回頂部