發表日期:2017-06 文章編輯:小燈 瀏覽次數:3979
SSL的全稱是Secure Sockets Layer,是網景公司創造的一種協議。它在TCP協議之上,應用層之下運作,是用來傳輸敏感信息的,比如在網上傳輸信用卡的一些細節。SSL通過使用一個私鑰來加密信息,加密后的信息會在一個激活了SSL功能的連接中進行傳輸,從而阻止了對信息的竊取。
最流行的SSL的使用方法是,與瀏覽器結合(使用HTTP協議),但事實上很多網絡的應用都可以從使用SSL中受益。按照約定,使用SSL連接的URL地址以https開頭,而不是http。
1. 可以讓服務器證明自己的身份
2. 可以讓用戶證明自己的身份(可選擇的)
3.可以建立加密的連接
為兩個交互的應用提供可靠性和私密性
SSL協議由兩層組成,分別是SSL記錄層和SSL握手層。記錄層用來傳輸大量數據,而握手層是為數據傳輸建立安全的連接。
1. 對“ciper suite”進行協商
2.驗證服務器
3.驗證客戶端(可選擇)
4.生成 session keys
5.建立一個安全連接
包含的內容:證書發布者的名稱,證書發布的對象,公鑰,時間戳
是從上一個消息中制造出的一種消息產物,消息產物有以下重要的特性:1. 這種制造是很難被反向恢復的 2. 很難用一條不同的消息,卻計算出具有相同的值的消息產物
只要你已經正確地生成一個滿足X.509的SSL證書,你可以通過生成一個CA(證書機構),從而自簽名,也可以讓一個具有全球認可度的證書機構來對此證書進行簽名。
在這個證書簽名的過程中,它就已經使用了OpenSSL的工具集,或是用來觸發LDAP或是HTTP協議的服務器SSL連接的庫。
自簽名的證書有一個最大的優勢,那就是它完全是免費的,并且它可能完全符合需要。自簽名的證書在封閉的實驗室環境中,或是用作測試需要是極好的。
自簽名證書的一個缺點是,當訪問一個使用自簽名證書的服務器時,用戶的瀏覽器或是其他應用程序會有警告產生。通過將服務器端的證書移植到客戶端應用中,警告可能可以被消除。在一個面向公眾和生產額環境中,不建議使用自簽名證書,因為由于這些警告帶來的不信任問題和對用戶造成的可能的困惑情緒。
注意:如果你想要成立一個商業網站,那么你必須要獲得一個被認可的CA簽名的證書。
進行驗證:這個網站必須有一個證書,服務器必須要向CA提交證書申請。
進行加密:必須分享keys
X.509是ITU-T(國際電信委員會)發布的電子證書的一個具體化。它將驗證用戶或電腦系統所需要的信息和屬性具體化,從而被廣泛地用于安全控制和在網上進行電子簽名證書的分發。OpenSSL經常使用X.509證書
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簽名和加密過的郵件
為了實現自簽名的證書,你必須首先建立一個CA,步驟如下:
比如在你的主目錄下,在命令行中敲以下的代碼:
cd && mkdir -p myCA/signedcerts && mkdir myCA/private && cd myCA
這行代碼會在你的主目錄下建立一個名叫myCA的新的子目錄,并且在myCA的文件夾中有兩個叫做“signedcerts”和“private”的子目錄。
myCA中包含CA證書,證書數據庫,生成的證書,鑰匙和請求。
myCA/signedcerts中包含被簽名的證書的拷貝。
myCA/private中包含私鑰。
在myCA的子目錄下建立初始證書數據庫。在命令行中敲下如下命令:
echo '01' > serial? && touch index.txt
為創建CA證書而創建一個初始的caconfig.cnf文件。使用你所喜愛的文本編輯器,編輯caconfig.cnf文件,將以下的內容插入文件:
注意:確保把此文件中特定的信息進行了修改,比如在[ local_ca ]和[ req ]里的/home/<username>,同時在[root_ca_distinguished_name]中的commonName, stateOrProvinceName, countryName也需要改動。
當此文件編輯完畢后,將其保存為caconfig.cnf
通過以下的命令生成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為新的服務器或者客戶端證書簽名時都需要用到。
以上的命令會生成一個使用PEM格式和RSA公/私鑰密碼自簽名的證書。這個證書的有效期為1825天。
生成的文件存放的位置,以及內容如下:
~/myCA/cacert.pem: CA的公證書
~/myCA/private/cakey.pem: CA的私鑰
我們現在已經配置好CA的證書,我們可以用它來為自簽名的證書簽名。在開始下面的步驟之前,你可能希望能為證書的私鑰加密。為私鑰加密的好處是,可以防止它被竊取。
這個開啟SSL功能的應用每一次啟動,都需要輸入密碼,否則這個證書就沒有辦法被使用。在這樣的情況下,雖然非常安全,但也可能帶來一些問題,比如如果電腦重啟,服務必須開啟但是知道密碼的人又不在場。
一種解決這個問題的辦法是需要用一些安全的代價來交換。密碼可以被解析,這樣啟用了SSL的應用就可以自動啟動,而不用必須輸入密碼。
想要生成一個啟用SSL服務的自簽名證書,遵循如下幾步:
使用你喜愛的編輯器,在myCA文件下新建一個exampleserver.cnf文件,內容如下:
注意:
1. 確保要將server_distinguished_name中的commonName的值改為與CA配置文件中的值相一致,否則會出現不匹配的錯誤。
2. 將[ server_distinguished_name]下的commonName改為localhost,同時將[ alt_name ]下的DNS.0和DNS.1都改成localhost。
編輯完畢之后,將文件保存。
首先輸入以下命令:
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
使用如下的命令:
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文件導入
修改/etc/apache2/sites-available中default-ssl文件的SSLCertificateFile以及
SSLCertificateKeyFile,前者改為給服務器頒發的證書文件,server_crt.pem或
01.pem都可,后者是服務器私鑰server_key.pem,不是CA的私鑰cacert.pem。
執行a2enmod ssl和a2ensite default-ssl啟動SSL模塊,
執行service apache2 restart重啟服務器
我們在URL欄目中輸入http://localhost,顯示出如下頁面,并且地址欄前面出現一鎖的形狀,將鼠標浮在鎖上可以看到我們之前編輯CA配置文件中指定的機構名稱。
日期:2018-04 瀏覽次數:6760
日期:2017-02 瀏覽次數:3434
日期:2017-09 瀏覽次數:3653
日期:2017-12 瀏覽次數:3524
日期:2018-12 瀏覽次數:4814
日期:2016-12 瀏覽次數:4580
日期:2017-07 瀏覽次數:13641
日期:2017-12 瀏覽次數:3504
日期:2018-06 瀏覽次數:4264
日期:2018-05 瀏覽次數:4442
日期:2017-12 瀏覽次數:3555
日期:2017-06 瀏覽次數:3978
日期:2018-01 瀏覽次數:3940
日期:2016-12 瀏覽次數:3907
日期:2018-08 瀏覽次數:4422
日期:2017-12 瀏覽次數:3703
日期:2016-09 瀏覽次數:6403
日期:2018-07 瀏覽次數:3204
日期:2016-12 瀏覽次數:3228
日期:2018-10 瀏覽次數:3376
日期:2018-10 瀏覽次數:3478
日期:2018-09 瀏覽次數:3575
日期:2018-02 瀏覽次數:3594
日期:2015-05 瀏覽次數:3517
日期:2018-09 瀏覽次數:3303
日期:2018-06 瀏覽次數:3432
日期:2017-02 瀏覽次數:3867
日期:2018-02 瀏覽次數:4333
日期:2018-02 瀏覽次數:4170
日期:2016-12 瀏覽次數:3570
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.