為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2017-06 文章編輯:小燈 瀏覽次數(shù):3990
SSL的全稱是Secure Sockets Layer,是網(wǎng)景公司創(chuàng)造的一種協(xié)議。它在TCP協(xié)議之上,應(yīng)用層之下運(yùn)作,是用來(lái)傳輸敏感信息的,比如在網(wǎng)上傳輸信用卡的一些細(xì)節(jié)。SSL通過(guò)使用一個(gè)私鑰來(lái)加密信息,加密后的信息會(huì)在一個(gè)激活了SSL功能的連接中進(jìn)行傳輸,從而阻止了對(duì)信息的竊取。
最流行的SSL的使用方法是,與瀏覽器結(jié)合(使用HTTP協(xié)議),但事實(shí)上很多網(wǎng)絡(luò)的應(yīng)用都可以從使用SSL中受益。按照約定,使用SSL連接的URL地址以https開(kāi)頭,而不是http。
1. 可以讓服務(wù)器證明自己的身份
2. 可以讓用戶證明自己的身份(可選擇的)
3.可以建立加密的連接
為兩個(gè)交互的應(yīng)用提供可靠性和私密性
SSL協(xié)議由兩層組成,分別是SSL記錄層和SSL握手層。記錄層用來(lái)傳輸大量數(shù)據(jù),而握手層是為數(shù)據(jù)傳輸建立安全的連接。
1. 對(duì)“ciper suite”進(jìn)行協(xié)商
2.驗(yàn)證服務(wù)器
3.驗(yàn)證客戶端(可選擇)
4.生成 session keys
5.建立一個(gè)安全連接
包含的內(nèi)容:證書發(fā)布者的名稱,證書發(fā)布的對(duì)象,公鑰,時(shí)間戳
是從上一個(gè)消息中制造出的一種消息產(chǎn)物,消息產(chǎn)物有以下重要的特性:1. 這種制造是很難被反向恢復(fù)的 2. 很難用一條不同的消息,卻計(jì)算出具有相同的值的消息產(chǎn)物
只要你已經(jīng)正確地生成一個(gè)滿足X.509的SSL證書,你可以通過(guò)生成一個(gè)CA(證書機(jī)構(gòu)),從而自簽名,也可以讓一個(gè)具有全球認(rèn)可度的證書機(jī)構(gòu)來(lái)對(duì)此證書進(jìn)行簽名。
在這個(gè)證書簽名的過(guò)程中,它就已經(jīng)使用了OpenSSL的工具集,或是用來(lái)觸發(fā)LDAP或是HTTP協(xié)議的服務(wù)器SSL連接的庫(kù)。
自簽名的證書有一個(gè)最大的優(yōu)勢(shì),那就是它完全是免費(fèi)的,并且它可能完全符合需要。自簽名的證書在封閉的實(shí)驗(yàn)室環(huán)境中,或是用作測(cè)試需要是極好的。
自簽名證書的一個(gè)缺點(diǎn)是,當(dāng)訪問(wèn)一個(gè)使用自簽名證書的服務(wù)器時(shí),用戶的瀏覽器或是其他應(yīng)用程序會(huì)有警告產(chǎn)生。通過(guò)將服務(wù)器端的證書移植到客戶端應(yīng)用中,警告可能可以被消除。在一個(gè)面向公眾和生產(chǎn)額環(huán)境中,不建議使用自簽名證書,因?yàn)橛捎谶@些警告帶來(lái)的不信任問(wèn)題和對(duì)用戶造成的可能的困惑情緒。
注意:如果你想要成立一個(gè)商業(yè)網(wǎng)站,那么你必須要獲得一個(gè)被認(rèn)可的CA簽名的證書。
進(jìn)行驗(yàn)證:這個(gè)網(wǎng)站必須有一個(gè)證書,服務(wù)器必須要向CA提交證書申請(qǐng)。
進(jìn)行加密:必須分享keys
X.509是ITU-T(國(guó)際電信委員會(huì))發(fā)布的電子證書的一個(gè)具體化。它將驗(yàn)證用戶或電腦系統(tǒng)所需要的信息和屬性具體化,從而被廣泛地用于安全控制和在網(wǎng)上進(jìn)行電子簽名證書的分發(fā)。OpenSSL經(jīng)常使用X.509證書
OpenSSL課題致力于開(kāi)發(fā)一個(gè)強(qiáng)健的、商業(yè)檔次、功能健全的開(kāi)源工具集,實(shí)現(xiàn)的是第二版和第三版SSL協(xié)議規(guī)范,和第一版的TLS協(xié)議規(guī)范,并且也是一個(gè)功能全大的通用密碼庫(kù)。
OpenSSL課題由一個(gè)全球性的公益組織管理,利用網(wǎng)絡(luò)來(lái)交流、計(jì)劃和開(kāi)發(fā)這個(gè)工具及其文檔。OpenSSL基于一個(gè)由 Eric A. Young和Tim J.Hudon開(kāi)發(fā)的SSLeay庫(kù)。
1. 開(kāi)源
2. 全功能的實(shí)現(xiàn)
3. 跨平臺(tái)(Windows和Unix)
4. 命令行界面
5. 應(yīng)用編程界面(針對(duì)C/C++, Perl, PHP, Python)
1. 創(chuàng)造出RSA, DSA和DH的秘鑰對(duì)
2. 創(chuàng)造出X509的證書,CSRs和CRLs
3. 計(jì)算出消息產(chǎn)物
4. 利用密碼進(jìn)行編碼和解碼工作
5. 對(duì)?SSL/TLS客戶端和服務(wù)器進(jìn)行測(cè)試
6. 處理S/MIME簽名和加密過(guò)的郵件
為了實(shí)現(xiàn)自簽名的證書,你必須首先建立一個(gè)CA,步驟如下:
比如在你的主目錄下,在命令行中敲以下的代碼:
cd && mkdir -p myCA/signedcerts && mkdir myCA/private && cd myCA
這行代碼會(huì)在你的主目錄下建立一個(gè)名叫myCA的新的子目錄,并且在myCA的文件夾中有兩個(gè)叫做“signedcerts”和“private”的子目錄。
myCA中包含CA證書,證書數(shù)據(jù)庫(kù),生成的證書,鑰匙和請(qǐng)求。
myCA/signedcerts中包含被簽名的證書的拷貝。
myCA/private中包含私鑰。
在myCA的子目錄下建立初始證書數(shù)據(jù)庫(kù)。在命令行中敲下如下命令:
echo '01' > serial? && touch index.txt
為創(chuàng)建CA證書而創(chuàng)建一個(gè)初始的caconfig.cnf文件。使用你所喜愛(ài)的文本編輯器,編輯caconfig.cnf文件,將以下的內(nèi)容插入文件:
注意:確保把此文件中特定的信息進(jìn)行了修改,比如在[ local_ca ]和[ req ]里的/home/<username>,同時(shí)在[root_ca_distinguished_name]中的commonName, stateOrProvinceName, countryName也需要改動(dòng)。
當(dāng)此文件編輯完畢后,將其保存為caconfig.cnf
通過(guò)以下的命令生成CA根證書和秘鑰。
1.?export OPENSSL_CONF=~/myCA/caconfig.cnf
這條命令設(shè)置了一個(gè)環(huán)境變量,OPENSSL_CONF,這個(gè)變量會(huì)強(qiáng)制openssl工具去你指定的目錄中尋找配置文件。
2. openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 1825
通過(guò)這條命令來(lái)CA證書和秘鑰。輸入以上命令后,得到的結(jié)果如下:
你會(huì)被強(qiáng)制要求輸入一個(gè)密碼。請(qǐng)記住這個(gè)密碼,因?yàn)橐院竺恳淮文阆胍眠@個(gè)CA為新的服務(wù)器或者客戶端證書簽名時(shí)都需要用到。
以上的命令會(huì)生成一個(gè)使用PEM格式和RSA公/私鑰密碼自簽名的證書。這個(gè)證書的有效期為1825天。
生成的文件存放的位置,以及內(nèi)容如下:
~/myCA/cacert.pem: CA的公證書
~/myCA/private/cakey.pem: CA的私鑰
我們現(xiàn)在已經(jīng)配置好CA的證書,我們可以用它來(lái)為自簽名的證書簽名。在開(kāi)始下面的步驟之前,你可能希望能為證書的私鑰加密。為私鑰加密的好處是,可以防止它被竊取。
這個(gè)開(kāi)啟SSL功能的應(yīng)用每一次啟動(dòng),都需要輸入密碼,否則這個(gè)證書就沒(méi)有辦法被使用。在這樣的情況下,雖然非常安全,但也可能帶來(lái)一些問(wèn)題,比如如果電腦重啟,服務(wù)必須開(kāi)啟但是知道密碼的人又不在場(chǎng)。
一種解決這個(gè)問(wèn)題的辦法是需要用一些安全的代價(jià)來(lái)交換。密碼可以被解析,這樣啟用了SSL的應(yīng)用就可以自動(dòng)啟動(dòng),而不用必須輸入密碼。
想要生成一個(gè)啟用SSL服務(wù)的自簽名證書,遵循如下幾步:
使用你喜愛(ài)的編輯器,在myCA文件下新建一個(gè)exampleserver.cnf文件,內(nèi)容如下:
注意:
1. 確保要將server_distinguished_name中的commonName的值改為與CA配置文件中的值相一致,否則會(huì)出現(xiàn)不匹配的錯(cuò)誤。
2. 將[ server_distinguished_name]下的commonName改為localhost,同時(shí)將[ alt_name ]下的DNS.0和DNS.1都改成localhost。
編輯完畢之后,將文件保存。
首先輸入以下命令:
export OPENSSL_CONF=~/myCA/exampleserver.cnf
與之前生成CA中的一樣,這行命令也是通過(guò)設(shè)置環(huán)境變量OPENSSL_CONF的值,強(qiáng)制openssl到我們指定的地方尋找配置文件。
接著通過(guò)下面的代碼生成服務(wù)器證書和秘鑰:
openssl req -newkey rsa:1024 -keyout tempkey.pem -keyform PEM -out tempreq.pem -outform PEM
我們會(huì)看到反饋結(jié)果如下:
我們也會(huì)被要求輸入密碼。請(qǐng)記住這個(gè)密碼。
使用如下的命令將私鑰轉(zhuǎn)換成不加密的形式:
openssl rsa < tempkey.pem > server_key.pem
我們會(huì)被要求輸入密碼,反饋結(jié)果如下:
如果你希望保持秘鑰為加密狀態(tài)的話,輸入以下的命令,而不要進(jìn)行上面的步驟:
mv tempkey.pem server_key.pem
使用如下的命令:
export OPENSSL_CONF=~/myCA/caconfig.cnf
這條命令將OpenSSL的配置文件位置又重新變回CA的配置文件位置。
使用如下命令對(duì)證書進(jìn)行簽名:
openssl ca -in tempreq.pem -out server_crt.pem
你會(huì)被要求輸入我們?cè)趧?chuàng)立CA時(shí)設(shè)置的密碼。在命令行中輸入密碼,你會(huì)被要求確認(rèn)服務(wù)器證書的信息,最后確認(rèn)是否對(duì)該證書進(jìn)行簽名。命令行的反饋結(jié)果如下:
使用以下的命令行移除這個(gè)暫時(shí)的證書,以及秘鑰文件:
rm -f tempkey.pem && rm -f tempreq.pem
恭喜你!到目前為止,你已經(jīng)擁有了一個(gè)自簽名的服務(wù)器證書和秘鑰對(duì):
server_crt.pem:服務(wù)器應(yīng)用證書文件
server_key.pem:服務(wù)器應(yīng)用秘鑰文件
你可以在你需要的服務(wù)器應(yīng)用軟件上使用這個(gè)證書和秘鑰。
使用PEM證書進(jìn)行SSL連接,需要將CA證書引入到火狐web瀏覽器中。
將該服務(wù)器的根證書引入到瀏覽器中可以保證客戶端可以與該服務(wù)器端建立一個(gè)安全的SSL連接,而不會(huì)被警告自簽名的問(wèn)題。
在火狐瀏覽器中選擇首選項(xiàng)
在左側(cè)欄目中選擇高級(jí) - > 證書 - > 查看證書
選擇證書機(jī)構(gòu) - > 導(dǎo)入?
選擇之前生成的cacert.pem文件導(dǎo)入
修改/etc/apache2/sites-available中default-ssl文件的SSLCertificateFile以及
SSLCertificateKeyFile,前者改為給服務(wù)器頒發(fā)的證書文件,server_crt.pem或
01.pem都可,后者是服務(wù)器私鑰server_key.pem,不是CA的私鑰cacert.pem。
執(zhí)行a2enmod ssl和a2ensite default-ssl啟動(dòng)SSL模塊,
執(zhí)行service apache2 restart重啟服務(wù)器
我們?cè)赨RL欄目中輸入http://localhost,顯示出如下頁(yè)面,并且地址欄前面出現(xiàn)一鎖的形狀,將鼠標(biāo)浮在鎖上可以看到我們之前編輯CA配置文件中指定的機(jī)構(gòu)名稱。
日期:2018-04 瀏覽次數(shù):6773
日期:2017-02 瀏覽次數(shù):3446
日期:2017-09 瀏覽次數(shù):3671
日期:2017-12 瀏覽次數(shù):3540
日期:2018-12 瀏覽次數(shù):4834
日期:2016-12 瀏覽次數(shù):4590
日期:2017-07 瀏覽次數(shù):13655
日期:2017-12 瀏覽次數(shù):3520
日期:2018-06 瀏覽次數(shù):4276
日期:2018-05 瀏覽次數(shù):4452
日期:2017-12 瀏覽次數(shù):3566
日期:2017-06 瀏覽次數(shù):3989
日期:2018-01 瀏覽次數(shù):3955
日期:2016-12 瀏覽次數(shù):3920
日期:2018-08 瀏覽次數(shù):4436
日期:2017-12 瀏覽次數(shù):3723
日期:2016-09 瀏覽次數(shù):6436
日期:2018-07 瀏覽次數(shù):3218
日期:2016-12 瀏覽次數(shù):3238
日期:2018-10 瀏覽次數(shù):3390
日期:2018-10 瀏覽次數(shù):3497
日期:2018-09 瀏覽次數(shù):3589
日期:2018-02 瀏覽次數(shù):3606
日期:2015-05 瀏覽次數(shù):3533
日期:2018-09 瀏覽次數(shù):3314
日期:2018-06 瀏覽次數(shù):3441
日期:2017-02 瀏覽次數(shù):3881
日期:2018-02 瀏覽次數(shù):4344
日期:2018-02 瀏覽次數(shù):4187
日期:2016-12 瀏覽次數(shù):3583
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.