HTTPS相關知識

來源:互聯網
上載者:User

標籤:socket   port   資料完整性   作用   usr   副檔名   .com   lis   用戶端   

概念HTTP(HyperText Transfer Protocol超文字傳輸通訊協定 (HTTP))

以明文方式發送內容,不提供任何方式的資料加密,是一個用戶端和伺服器端請求和應答的標準(TCP),用於從WWW伺服器傳輸超文本到本地瀏覽器的傳輸協議

HTTPSHyper Text Transfer Protocol over Secure Socket Layer基於安全通訊端的超文字傳輸通訊協定 (HTTP))

         是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL

         作用:一種是建立一個資訊安全通道,來保證資料轉送的安全;另一種就是確認網站的真實性。

SSL(Secure Sockets Layer安全通訊端)

         是Web瀏覽器與Web伺服器之間安全交換資訊的協議,提供兩個基本的安全服務:鑒別與保密

TSL(Transport Layer Security安全傳輸層)

         用於在兩個通訊應用程式之間提供保密性和資料完整性

對稱式加密與非對稱式加密

         對稱式加密:加密與解密採用相同的密鑰

         非對稱式加密:有兩個不同的密鑰,任意一個都可以成為加密金鑰,另外一個就是解密密鑰。

公開金鑰與私密金鑰

         使用非對稱式加密時,一個密鑰公之於眾,稱為公開金鑰;另一個密鑰除密鑰擁有者,其他人都不知道,稱為私密金鑰。

數位簽章

         基於非對稱式加密。

         伺服器-->瀏覽器:擁有私密金鑰的一方使用私密金鑰對內容進行加密後發送出去,由於任何人都可以獲得改私密金鑰對應的公開金鑰,所以擁有公開金鑰者使用公開金鑰對內容進行解密,能正確解密,說明該內容必然為擁有私密金鑰的那一方發出的

         瀏覽器--->伺服器:擁有公開金鑰的實體使用公開金鑰對內容進行加密,只有私密金鑰擁有者可以進行解密

數位憑證

         以數位簽章的方式通過權威認證機構CA有效地進行網上認證,協助各個實體識別對方身份

         數位憑證就是一個檔案,儲存了某個實體的資訊及該實體所擁有的私密金鑰對應的公開金鑰。

CA(Certificate Authority認證權威機構)

         是數位憑證認證中心的簡稱,是指發放、管理、廢除數位憑證的機構。

         CA的作用是檢查認證持有人身份的合法性,並簽發認證(在認證上籤字),以防認證被偽造或篡改,以及對認證和密鑰進行管理。

SSL與CA

         CA是數位憑證管理機構,SSL認證是數位憑證的一種,CA簽發SSL認證,https是SSL認證的一種表現形式        

https訪問過程

   

自我簽署憑證製作(自己做CA)目標:

         server使用的檔案有:ca.crt,server.crt,server.key

名詞:

         認證格式:

                   認證格式轉換:http://blog.csdn.net/adeyi/article/details/8299473

                   PEM格式:Base64編碼的ASCII檔案;通常儲存伺服器認證認證、中級認證認證和私密金鑰;應用:APACHE和類似伺服器;副檔名為.pem, .crt, .cer, .key

                   DER格式:二進位編碼的ASCII檔案;可以儲存所有的認證和私密金鑰;應用:JAVA;副檔名為.der,也有.cer, .crt

                   PKSC#7/P7B格式:base64格式;儲存認證認證或憑證鏈結中的認證,不能儲存私密金鑰;應用:Windows和tomcat都支援;副檔名.p7b, .p7c, .spc

                   PKS#12/PFX格式:加密的二進位格式;儲存伺服器認證認證、中級認證認證和私密金鑰;應用:Windows中匯入匯出認證認證和私密金鑰;副檔名:.pfx, .p12

         CSR:Certificate Signing Request

1. 製作CA

         1.1. 為CA建立RSA私密金鑰(des3加密並且是PEM格式)

                   openssl genrsa -des3 -out ca.key 1024

                           des3--密碼編譯演算法

                            過程中會提示輸入密碼,通過des3密碼編譯演算法使用輸入的密碼加密ca.key檔案

                            附:

                                     查看私密金鑰的詳細資料:openssl rsa -noout -text -in ca.key

                                     去除私密金鑰的口令:openssl rsa -in server.key -out ca.key

         1.2. 為CA建立一個自簽名的認證(x509結構,輸出為PEM格式)

                   openssl req -new -x509 -days 365 -key ca.key -out ca.crt

                            x509--結構

                            附:

                                     查看認證資訊:openssl x509 -noout -text -in ca.crt

2. 自建server認證

         2.1 產生server私密金鑰

                   openssl genrsa -des3 -out server.key 1024

         2.2 產生server認證請求

                   openssl req -new -key server.key -out server.csr

         2.3 使用CA簽名server認證

                   openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -out servercert.crt

                   簽證完成後,會把認證請求響應和CA根憑證一起返回給要求者,即server端

         2.4 server端有另一伺服器通過代碼訪問https,需使用keytool將根憑證(鏈)及認證請求響應匯入到java的cacerts庫中

                   keytool -import -alias isupcert -trustcacerts -file servercert.crt -keystore $JAVA_HOME/jre/lib/security/cacerts

                   附:

                            查看已有的認證:keytool -list -keystore cacerts -alias isupcert

                            刪除某認證keytool -delete -alias isupcert -keystore cacerts

3.client信任安全性憑證

         一般添加到瀏覽器的信任白名單即可使用。

         但在有的作業系統中,還需要將根憑證配置為系統級的認證,才允許繼續使用。

    Mac OS X
      添加認證:
        sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain~/new-root-certificate.crt
      移除認證:
        sudo security delete-certificate -c ""

    Windows
      添加認證:
        certutil -addstore -f "ROOT" new-root-certificate.crt
      移除認證:
        certutil -delstore "ROOT" serial-number-hex

    Linux (Ubuntu, Debian)
      添加認證:
        1.複製 CA 檔案到目錄: /usr/local/share/ca-certificates/
        2.執行:sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
        3.更新 CA 憑證庫:sudo update-ca-certificates
      移除認證:
        1.Remove your CA.
        2.Update the CA store:
          sudo update-ca-certificates --fresh
      Restart Kerio Connect to reload the certificates in the 32-bit versions orDebian 7.

    Linux (CentOs 6)
      添加認證:
        1.安裝 ca-certificates package:yum install ca-certificates
        2.啟用dynamic CA configuration feature:update-ca-trust force-enable
        3.Add it as a new file to /etc/pki/ca-trust/source/anchors/:cp foo.crt /etc/pki/ca-trust/source/anchors/
        4.執行:update-ca-trust extract
      Restart Kerio Connect to reload the certificates in the 32-bit version.

    Linux (CentOs 5)
      添加認證:
        Append your trusted certificate to file /etc/pki/tls/certs/ca-bundle.crt:cat foo.crt >> /etc/pki/tls/certs/ca-bundle.crt

參考:

  如何添加自訂CA根憑證到作業系統獲得信任

    https://www.qiansw.com/add-the-ca-root-certificate-to-the-operating-system-for-trust.html

  SSLCA

    http://blog.csdn.net/lzs109/article/details/6960461

HTTPS相關知識

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.