• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
    電話圖標(biāo) 余先生:13699882642

    網(wǎng)站百科

    為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴

    Http與Https認(rèn)證

    發(fā)表日期:2018-06 文章編輯:小燈 瀏覽次數(shù):5189

    作者:燁竹

    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 請求
    <-- 401 響應(yīng)碼拒絕請求,攜帶響應(yīng)頭 WWW-Authenticate 描述保護(hù)區(qū)域 和 認(rèn)證算法
    --> 請求攜帶 Authorization 頭,指明認(rèn)證算法和用戶名密碼
    <-- 200 相應(yīng)

    2.摘要認(rèn)證


    DIGEST認(rèn)證同樣使用質(zhì)詢/響應(yīng)的方式(challenge / response),但不會像 BASIC 認(rèn)證那樣直接發(fā)送明文密碼,但是和 HTTPS 的客戶端認(rèn)證相比仍舊很弱

    基本認(rèn)證 和 摘要認(rèn)證 都是一種無狀態(tài)的認(rèn)證方式,就是不需要服務(wù)器端保存必要的session,所以也沒有session失效期。客戶端每次都需要將密碼和用戶名發(fā)送給服務(wù)器來完成認(rèn)證,,而且用戶名和密碼是保存在瀏覽器進(jìn)程的內(nèi)存中的,也就是只有當(dāng)瀏覽器關(guān)閉的時候,用戶名和密碼也隨之刪除,才表示這次服務(wù)和認(rèn)證結(jié)束,下一次請求需要重新輸入用戶名和密碼。
    這兩種方式都是瀏覽器產(chǎn)生輸入用戶名和密碼的登錄框。Basic認(rèn)證采用了Base64編碼,攻擊者很容易獲取http請求,然后解碼請求就可以獲取用戶名和密碼,沒有安全性可言;
    而Digest認(rèn)證采用一中NONCE隨機(jī)字符串,用戶的每次認(rèn)證都需要哈希和MD5(用戶名和密碼),并加入這個鹽值,客戶端和服務(wù)器端每次的NONCE都是不一樣的,這樣就保證了認(rèn)證的安全性和不可重放性。
    這里的NONCE并不是Session保存的一個字符串,這樣就違背了無狀態(tài)性特性

    3.SSL 客戶端認(rèn)證

    SSL 客戶端認(rèn)證是借由 HTTPS 的客戶端證書完成認(rèn)證的方式。憑借客戶端證書(詳見 HTTPS加密機(jī)制以及數(shù)字證書)認(rèn)證,服務(wù)器可確認(rèn)訪問是否來自已登陸的客戶端。
    SSL 客戶端認(rèn)證步驟:
    為達(dá)到 SSL 客戶端認(rèn)證的目的,需要事先將客戶端證書分發(fā)給客戶端,且客戶端必須安裝此證書。

    1. 接收到需要認(rèn)證資源的請求,服務(wù)器會發(fā)送 Certificate Request 報(bào)文,要求客戶端提供客戶端證書。
    2. 用戶選擇將發(fā)送的客戶端證書后,客戶端會把客戶端證書信息以 Client Certificate 報(bào)文方式發(fā)送給服務(wù)器。
    3. 服務(wù)器驗(yàn)證客戶端證書,驗(yàn)證通過后方可領(lǐng)取證書內(nèi)客戶端的公開密鑰,然后開始 HTTPS 加密通信。

    4.表單認(rèn)證

    基于表單的認(rèn)證方法并不是在 HTTP 協(xié)議中定義的,客戶端會向服務(wù)器上 Web 應(yīng)用發(fā)送登錄信息,按登錄信息的驗(yàn)證結(jié)果認(rèn)證。

    Https

    1.RSA:對極大整數(shù)做因數(shù)分解的難度決定了RSA算法的可靠性

    非對稱加密算法
    乙方生成兩把密鑰(公鑰和私鑰)。公鑰是公開的,任何人都可以獲得,私鑰則是保密的。
    甲方獲取乙方的公鑰,然后用它對信息加密。
    乙方得到加密后的信息,用私鑰解密。
    公鑰可以解密私鑰加密的數(shù)據(jù)私有也可以解密公鑰加密的數(shù)據(jù)

    在線測試 公鑰/私鑰 的 加密/解密
    在線生成密鑰對
    在線 RSA 公鑰加密解密
    在線 RSA 私鑰加密解密

    Read More
    阮一峰的網(wǎng)絡(luò)日志 RSA算法原理(一)
    阮一峰的網(wǎng)絡(luò)日志 RSA算法原理(二)

    2.SSL握手

    生成對話密鑰一共需要三個隨機(jī)數(shù)
    握手之后的對話使用"對話密鑰"加密(對稱加密),服務(wù)器的公鑰和私鑰只用于加密和解密"對話密鑰"(非對稱加密),無其他作用
    服務(wù)器公鑰放在服務(wù)器的數(shù)字證書之中

    Read More
    SSL/TLS協(xié)議運(yùn)行機(jī)制的概述
    圖解SSL/TLS協(xié)議

    3.證書申請

    術(shù)語

    CA : 電子商務(wù)認(rèn)證授權(quán)機(jī)構(gòu)(Certificate Authority)
    CSR : 證書簽名請求(Certificate Signing Request) 是簽發(fā)證書時的重要材料,它可以保證私鑰安全的情況下通過遠(yuǎn)端CA簽發(fā)證書。
    CRT : 證書文件(Certificate [s?r?t?f?k?t] )

    制作 CSR 文件

    在申請數(shù)字證書之前,必須先生成證書私鑰證書請求文件(CSR,Cerificate Signing Request),
    CSR是您的公鑰證書原始文件,包含了您的服務(wù)器信息和您的單位信息,需要提交給CA認(rèn)證中心。
    在生成CSR文件時會同時生成私鑰文件,需妥善保管和備份

    生成CSR文件時,一般需要輸入以下信息(中文需要UTF8編碼):
    Organization Name(O):申請單位名稱法定名稱,可以是中文或英文
    Organization Unit(OU):申請單位的所在部門,可以是中文或英文
    Country Code(C):申請單位所屬國家,只能是兩個字母的國家碼,如中國只能是:CN
    State or Province(S):申請單位所在省名或州名,可以是中文或英文
    Locality(L):申請單位所在城市名,可以是中文或英文
    Common Name(CN):申請SSL證書的具體網(wǎng)站域名

    使用 OpenSSL 制作

    # -new 指定生成一個新的CSR # -out certificate.csr 輸出文件為 當(dāng)前目錄下 ca.kail.xyz.csr # - newkey rsa:2048 指定私鑰類型和長度 # - 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 是一個密碼保護(hù)的文件,存放私鑰證書

    # -keyalg 指定密鑰類型,必須是 RSA # -alias 指定證書別名,可自定義 # -keysize 指定密鑰長度為 2048 # -keystore 指定證書文件保存路徑keytool -genkey -alias ca.kail.xyz -keyalg RSA -keysize 2048 -keystore ./ca.kail.xyz.jks

    輸入命令后會有下面的交互式操作:

    輸入密鑰庫口令: 再次輸入新口令: 您的名字與姓氏是什么? [Unknown]:ca.kail.xyz 您的組織單位名稱是什么? [Unknown]:dev 您的組織名稱是什么? [Unknown]:kail 您所在的城市或區(qū)域名稱是什么? [Unknown]:Shanghai 您所在的省/市/自治區(qū)名稱是什么? [Unknown]:Shanghai 該單位的雙字母國家/地區(qū)代碼是什么? [Unknown]:CN CN=ca.kail.xyz, OU=dev, O=kail, L=Shanghai, ST=Shanghai, C=CN是否正確? [否]:Y輸入 <ca.kail.xyz> 的密鑰口令 (如果和密鑰庫口令相同, 按回車):

    通過 jks 文件生成證書請求

    # sigalg指定摘要算法,使用 SHA256withRSA。 # alias指定別名,必須與 keystore 文件中的證書別名一致。 # keystore指定證書文件。 # file指定證書請求文件(CSR)。keytool -certreq -sigalg SHA256withRSA -alias ca.kail.xyz -keystore ./ca.kail.xyz.jks -file ./ca.kail.xyz.csr

    從 jks 文件 獲取 私鑰

    1. 將 JKS 格式證書轉(zhuǎn)換成 PFX 格式
    keytool -importkeystore -srckeystore ./ca.kail.xyz.jks -destkeystore ./ca.kail.xyz.pfx -srcstoretype JKS -deststoretype PKCS12
    1. PFX 文件轉(zhuǎn)成 pem 文件
    openssl pkcs12 -in ca.kail.xyz.pfx -nodes -out ca.kail.xyz.pem
    1. pem 文件 中提取出私鑰
    openssl rsa -in ca.kail.xyz.pem -out ca.kail.xyz.key

    主流數(shù)字證書都有哪些格式? 介紹了各種格式之間的轉(zhuǎn)換

    自制證書

    keytool

    上面 “從 jks 文件 獲取 私鑰”中的 第2步,生成的 ca.kail.xyz.pem 文件, 里面包含 私鑰和證書信息,編輯刪除多余的部分 保留 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 中間的內(nèi)容,后綴名改為 .csr 即可。
    Windows 下 雙擊打開,可查看證書內(nèi)容。

    OpenSSL

    openssl x509 -req -days 365 -in ca.kail.xyz.csr -signkey ca.kail.xyz.key -out ca.kail.xyz.crt

    申請授信證書

    通過 SSL.md 免費(fèi)獲取
    參見 快速獲取免費(fèi)SSL證書
    X509 文件擴(kuò)展名

    DER、PEM、CRT和CER這些擴(kuò)展名經(jīng)常令人困惑。很多人錯誤地認(rèn)為這些擴(kuò)展名可以互相代替。
    盡管的確有時候有些擴(kuò)展名是可以互換的,但是最好你能確定證書是如何編碼的,進(jìn)而正確地標(biāo)識它們。正確地標(biāo)識證書有助于證書的管理。

    編碼 (也用于擴(kuò)展名)

    .DER 擴(kuò)展名DER用于二進(jìn)制DER編碼的證書。比較合適的說法是 “我有一個DER編碼的證書”,而不是“我有一個DER證書”。
    .PEM 擴(kuò)展名PEM用于ASCII(Base64)編碼的各種X.509 v3 證書。文件開始由一行"—– BEGIN …“開始。

    常用的擴(kuò)展名

    .CRT 擴(kuò)展名CRT用于證書證書可以是DER編碼,也可以是PEM編碼。擴(kuò)展名CER和CRT幾乎是同義詞。這種情況在各種unix/linux系統(tǒng)中很常見。
    .CER CRT證書的微軟型式。可以用微軟的工具把CRT文件轉(zhuǎn)換為CER文件(CRT和CER必須是相同編碼的,DER或者PEM)。
    擴(kuò)展名為CER的文件可以被IE識別并作為命令調(diào)用微軟的cryptoAPI(具體點(diǎn)就是rudll32.exe cryptext.dll, CyrptExtOpenCER),進(jìn)而彈出一個對話框來導(dǎo)入并/或查看證書內(nèi)容。
    .KEY 擴(kuò)展名KEY用于PCSK#8的公鑰和私鑰。這些公鑰和私鑰可以是DER編碼或者PEM編碼。

    CRT文件和CER文件只有在使用相同編碼的時候才可以安全地相互替代。

    來自: http://blog.sina.com.cn/s/blog_a9303fd90101jmtx.html

    Read More
    如何制作CSR文件?
    阿里云證書服務(wù)
    快速獲取免費(fèi)SSL證書
    https://ssl.md
    Let's Encrypt,免費(fèi)好用的 HTTPS 證書
    acme.sh 自動更新證書

    4.Nginx 配置 HTTPS

    證書文件獲取:參見 [證書申請]

    判斷 Nginx 有沒有啟動 SSL 模塊

    nginx -V

    查看 configure arguments 中 如果有 with-http_ssl_module 則表明開啟了 SSL 模塊。

    安裝時 啟用 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 證書文件 和 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)


    本頁內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.juherenli.com/20400.html
    相關(guān)開發(fā)語言
     八年  行業(yè)經(jīng)驗(yàn)

    多一份參考,總有益處

    聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費(fèi)獲得網(wǎng)站建設(shè)方案及報(bào)價

    咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

    業(yè)務(wù)熱線:余經(jīng)理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    亚洲精品视频在线观看免费 | 欧洲精品无码成人久久久| 亚洲午夜精品久久久久久app| 国精品产区WNW2544| 国产乱子伦精品免费视频| 久久精品国产亚洲综合色| 久久精品人妻中文系列| 人妻偷人精品成人AV| 亚洲国产精品成人精品无码区在线| 久久6这里只有精品| 无码AⅤ精品一区二区三区| 91精品免费国产高清在线| 国产精品成人69XXX免费视频| 91精品手机国产免费| 精品成人一区二区三区免费视频| 久久精品韩国三级| 国产精品成人自拍| 精品乱人伦一区二区三区| 精品无人乱码一区二区三区 | 久久久精品久久久久久96| 91精品国产闺蜜国产在线闺蜜| 亚洲精品V欧洲精品V日韩精品| 亚洲精品国产日韩| 精品亚洲综合在线第一区| 国产精品女人呻吟在线观看| 国产午夜久久精品| 亚洲国产精品综合久久网各| 久久亚洲精品无码观看不卡| 亚洲av无码成人精品国产| 国精品无码一区二区三区在线| 狠狠精品久久久无码中文字幕| 99精品热这里只有精品| 99re热精品视频国产免费| www.99精品视频在线播放| 98精品国产综合久久| 91午夜精品亚洲一区二区三区| 在线精品视频播放| 亚洲精品美女视频| 久久福利资源国产精品999| 国产精品亚洲自在线播放页码| 国产成人精品2021|