<address id="r9vd9"><address id="r9vd9"><listing id="r9vd9"></listing></address></address>

      歡迎您光臨深圳塔燈網絡科技有限公司!
      電話圖標 余先生:13699882642

      網站百科

      為您解碼網站建設的點點滴滴

      SSL和 HTTPS

      發表日期:2017-06 文章編輯:小燈 瀏覽次數:4163

      SSL是什么?

      SSL的全稱是Secure Sockets Layer,是網景公司創造的一種協議。它在TCP協議之上,應用層之下運作,是用來傳輸敏感信息的,比如在網上傳輸信用卡的一些細節。SSL通過使用一個私鑰來加密信息,加密后的信息會在一個激活了SSL功能的連接中進行傳輸,從而阻止了對信息的竊取。

      最流行的SSL的使用方法是,與瀏覽器結合(使用HTTP協議),但事實上很多網絡的應用都可以從使用SSL中受益。按照約定,使用SSL連接的URL地址以https開頭,而不是http。

      SSL可以做什么?

      1. 可以讓服務器證明自己的身份

      2. 可以讓用戶證明自己的身份(可選擇的)

      3.可以建立加密的連接

      SSL協議

      目的:

      為兩個交互的應用提供可靠性和私密性

      組成:

      SSL協議由兩層組成,分別是SSL記錄層和SSL握手層。記錄層用來傳輸大量數據,而握手層是為數據傳輸建立安全的連接。

      握手的流程:

      1. 對“ciper suite”進行協商

      2.驗證服務器

      3.驗證客戶端(可選擇)

      4.生成 session keys

      5.建立一個安全連接

      兩個有用的術語

      1. 證書

      包含的內容:證書發布者的名稱,證書發布的對象,公鑰,時間戳

      2.電子簽名

      是從上一個消息中制造出的一種消息產物,消息產物有以下重要的特性:1. 這種制造是很難被反向恢復的 2. 很難用一條不同的消息,卻計算出具有相同的值的消息產物

      SSL證書

      在服務器端使用的SSL證書

      只要你已經正確地生成一個滿足X.509的SSL證書,你可以通過生成一個CA(證書機構),從而自簽名,也可以讓一個具有全球認可度的證書機構來對此證書進行簽名。

      在這個證書簽名的過程中,它就已經使用了OpenSSL的工具集,或是用來觸發LDAP或是HTTP協議的服務器SSL連接的庫。

      生成和對自簽名的證書進行簽名

      自簽名的證書有一個最大的優勢,那就是它完全是免費的,并且它可能完全符合需要。自簽名的證書在封閉的實驗室環境中,或是用作測試需要是極好的。

      自簽名證書的一個缺點是,當訪問一個使用自簽名證書的服務器時,用戶的瀏覽器或是其他應用程序會有警告產生。通過將服務器端的證書移植到客戶端應用中,警告可能可以被消除。在一個面向公眾和生產額環境中,不建議使用自簽名證書,因為由于這些警告帶來的不信任問題和對用戶造成的可能的困惑情緒。

      注意:如果你想要成立一個商業網站,那么你必須要獲得一個被認可的CA簽名的證書。


      SSL是如何工作的?

      進行驗證:這個網站必須有一個證書,服務器必須要向CA提交證書申請。

      連接建立過程

      進行加密:必須分享keys

      證書獲取流程

      X.509是什么?

      X.509是ITU-T(國際電信委員會)發布的電子證書的一個具體化。它將驗證用戶或電腦系統所需要的信息和屬性具體化,從而被廣泛地用于安全控制和在網上進行電子簽名證書的分發。OpenSSL經常使用X.509證書

      OpenSSL

      什么是OpenSSL?

      OpenSSL課題致力于開發一個強健的、商業檔次、功能健全的開源工具集,實現的是第二版和第三版SSL協議規范,和第一版的TLS協議規范,并且也是一個功能全大的通用密碼庫。

      OpenSSL課題由一個全球性的公益組織管理,利用網絡來交流、計劃和開發這個工具及其文檔。OpenSSL基于一個由 Eric A. Young和Tim J.Hudon開發的SSLeay庫。

      特點:

      1. 開源

      2. 全功能的實現

      3. 跨平臺(Windows和Unix)

      4. 命令行界面

      5. 應用編程界面(針對C/C++, Perl, PHP, Python)

      功能:

      1. 創造出RSA, DSA和DH的秘鑰對

      2. 創造出X509的證書,CSRs和CRLs

      3. 計算出消息產物

      4. 利用密碼進行編碼和解碼工作

      5. 對?SSL/TLS客戶端和服務器進行測試

      6. 處理S/MIME簽名和加密過的郵件

      利用OpenSSL進行實驗

      建立CA

      為了實現自簽名的證書,你必須首先建立一個CA,步驟如下:

      1. 建立一個初始的工作環境

      比如在你的主目錄下,在命令行中敲以下的代碼:

      cd && mkdir -p myCA/signedcerts && mkdir myCA/private && cd myCA

      這行代碼會在你的主目錄下建立一個名叫myCA的新的子目錄,并且在myCA的文件夾中有兩個叫做“signedcerts”和“private”的子目錄。

      myCA中包含CA證書,證書數據庫,生成的證書,鑰匙和請求。

      myCA/signedcerts中包含被簽名的證書的拷貝。

      myCA/private中包含私鑰。

      2. 建立初始證書數據庫

      在myCA的子目錄下建立初始證書數據庫。在命令行中敲下如下命令:

      echo '01' > serial? && touch index.txt

      3. 建立初始caconfig.cnf文件

      為創建CA證書而創建一個初始的caconfig.cnf文件。使用你所喜愛的文本編輯器,編輯caconfig.cnf文件,將以下的內容插入文件:

      caconfig.cnf內容

      注意:確保把此文件中特定的信息進行了修改,比如在[ local_ca ]和[ req ]里的/home/<username>,同時在[root_ca_distinguished_name]中的commonName, stateOrProvinceName, countryName也需要改動。

      當此文件編輯完畢后,將其保存為caconfig.cnf

      4. 生成CA根證書和秘鑰

      通過以下的命令生成CA根證書和秘鑰。

      1.?export OPENSSL_CONF=~/myCA/caconfig.cnf

      這條命令設置了一個環境變量,OPENSSL_CONF,這個變量會強制openssl工具去你指定的目錄中尋找配置文件。

      2. openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 1825

      通過這條命令來CA證書和秘鑰。輸入以上命令后,得到的結果如下:

      生成CA后的反饋

      你會被強制要求輸入一個密碼。請記住這個密碼,因為以后每一次你想要用這個CA為新的服務器或者客戶端證書簽名時都需要用到。

      以上的命令會生成一個使用PEM格式和RSA公/私鑰密碼自簽名的證書。這個證書的有效期為1825天。

      生成的文件存放的位置,以及內容如下:

      ~/myCA/cacert.pem: CA的公證書

      ~/myCA/private/cakey.pem: CA的私鑰

      創建一個自簽名的服務器證書

      我們現在已經配置好CA的證書,我們可以用它來為自簽名的證書簽名。在開始下面的步驟之前,你可能希望能為證書的私鑰加密。為私鑰加密的好處是,可以防止它被竊取。

      這個開啟SSL功能的應用每一次啟動,都需要輸入密碼,否則這個證書就沒有辦法被使用。在這樣的情況下,雖然非常安全,但也可能帶來一些問題,比如如果電腦重啟,服務必須開啟但是知道密碼的人又不在場。

      一種解決這個問題的辦法是需要用一些安全的代價來交換。密碼可以被解析,這樣啟用了SSL的應用就可以自動啟動,而不用必須輸入密碼。

      想要生成一個啟用SSL服務的自簽名證書,遵循如下幾步:

      1. 創建一個服務器配置文件

      使用你喜愛的編輯器,在myCA文件下新建一個exampleserver.cnf文件,內容如下:

      注意:

      1. 確保要將server_distinguished_name中的commonName的值改為與CA配置文件中的值相一致,否則會出現不匹配的錯誤。

      2. 將[ server_distinguished_name]下的commonName改為localhost,同時將[ alt_name ]下的DNS.0和DNS.1都改成localhost。

      編輯完畢之后,將文件保存。

      2. 生成服務器證書和秘鑰

      首先輸入以下命令:

      export OPENSSL_CONF=~/myCA/exampleserver.cnf

      與之前生成CA中的一樣,這行命令也是通過設置環境變量OPENSSL_CONF的值,強制openssl到我們指定的地方尋找配置文件。

      接著通過下面的代碼生成服務器證書和秘鑰:

      openssl req -newkey rsa:1024 -keyout tempkey.pem -keyform PEM -out tempreq.pem -outform PEM

      我們會看到反饋結果如下:

      生成服務器證書和秘鑰的反饋信息

      我們也會被要求輸入密碼。請記住這個密碼。

      將私鑰轉換成不加密的形式

      使用如下的命令將私鑰轉換成不加密的形式:

      openssl rsa < tempkey.pem > server_key.pem

      我們會被要求輸入密碼,反饋結果如下:

      秘鑰轉換的反饋結果

      如果你希望保持秘鑰為加密狀態的話,輸入以下的命令,而不要進行上面的步驟:

      mv tempkey.pem server_key.pem

      使用CA的秘鑰對服務器證書進行簽名

      使用如下的命令:

      export OPENSSL_CONF=~/myCA/caconfig.cnf

      這條命令將OpenSSL的配置文件位置又重新變回CA的配置文件位置。

      使用如下命令對證書進行簽名:

      openssl ca -in tempreq.pem -out server_crt.pem

      你會被要求輸入我們在創立CA時設置的密碼。在命令行中輸入密碼,你會被要求確認服務器證書的信息,最后確認是否對該證書進行簽名。命令行的反饋結果如下:

      對服務器證書進行簽名過程中的反饋信息

      使用以下的命令行移除這個暫時的證書,以及秘鑰文件:

      rm -f tempkey.pem && rm -f tempreq.pem

      恭喜你!到目前為止,你已經擁有了一個自簽名的服務器證書和秘鑰對:

      server_crt.pem:服務器應用證書文件

      server_key.pem:服務器應用秘鑰文件

      你可以在你需要的服務器應用軟件上使用這個證書和秘鑰。

      瀏覽器配置

      使用PEM證書進行SSL連接,需要將CA證書引入到火狐web瀏覽器中。

      將該服務器的根證書引入到瀏覽器中可以保證客戶端可以與該服務器端建立一個安全的SSL連接,而不會被警告自簽名的問題。

      將證書引入火狐瀏覽器

      在火狐瀏覽器中選擇首選項

      在左側欄目中選擇高級 - > 證書 - > 查看證書

      在火狐瀏覽器中導入證書

      選擇證書機構 - > 導入?

      選擇之前生成的cacert.pem文件導入

      修改Apache文件里的內容

      修改/etc/apache2/sites-available中default-ssl文件的SSLCertificateFile以及

      SSLCertificateKeyFile,前者改為給服務器頒發的證書文件,server_crt.pem或

      01.pem都可,后者是服務器私鑰server_key.pem,不是CA的私鑰cacert.pem。

      修改Apache的配置文件

      開啟SSL服務

      執行a2enmod ssl和a2ensite default-ssl啟動SSL模塊,

      執行service apache2 restart重啟服務器

      啟動SSL模塊

      最終的結果

      我們在URL欄目中輸入http://localhost,顯示出如下頁面,并且地址欄前面出現一鎖的形狀,將鼠標浮在鎖上可以看到我們之前編輯CA配置文件中指定的機構名稱。

      https實驗結果截圖
      本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.webpost.com.cn/20532.html
      相關開發語言
       八年  行業經驗

      多一份參考,總有益處

      聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

      咨詢相關問題或預約面談,可以通過以下方式與我們聯系

      業務熱線:余經理:13699882642

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

      • QQ咨詢
      • 在線咨詢
      • 官方微信
      • 聯系電話
        座機0755-29185426
        手機13699882642
      • 預約上門
      • 返回頂部
      国产成人精品综合在线观看