轉自《https安全連接的配置教程:startSSl免費證書申請與nginx的https支持配置》

1、什麼是 SSL 證書,什麼是 HTTPS 網站?

SSL證書是數字證書的一種,相似於駕駛證、護照和營業執照的電子副本。SSL證書經過在客戶端瀏覽器和Web服務器之間創建一條SSL安全通道(Secure socket layer(SSL)安全協議是由Netscape Communication公司設計開發。該安全協議主要用來提供對用戶和服務器的認證;對傳送的數據進行加密和隱藏;確保數據在傳送中不被改變,即數據的完整性,現已成爲該領域中全球化的標準。因爲SSL技術已創建到全部主要的瀏覽器和WEB服務器程序中,所以,僅需安裝服務器證書就能夠激活該功能了)。即經過它能夠激活SSL協議,實現數據信息在客戶端和服務器之間的加密傳輸,能夠防止數據信息的泄露。保證了雙方傳遞信息的安全性,並且用戶能夠經過服務器證書驗證他所訪問的網站是不是真實可靠。html

2、什麼網站須要 SSL 證書?

就我遇到過的網站,配置了認證的證書的,大概有這麼幾類:linux

一、購物交易類網站nginx

這個就不用說了,支付寶、財付通等確定會加密以保護你的密碼安全。web

二、註冊類站點算法

有些大站點,註冊會員或者登錄的時候,會專門經過SSL通道,來保護你的密碼安全。好比百度會員中心登陸的數據傳輸通道chrome

3、免費證書startssl申請

startSSL官方地址https://www.startssl.com/,稍微介紹下startSSL:它是一個證書頒發機構,支持免費的ssl證書頒發,相比於只是爲了學習ssl安全連接的程序猿們再也不須要花上一年好幾K的證書費用,固然你也能夠在startSSL花上$200左右購買一個付費的高等級ssl證書(畢竟人家給你免費的瀏覽器可識別的ssl證書也只會有一年而已);startSSL的ssl證書從一開始就被一些具備開源背景的firefox、chrome等支持,目前已經測試的支持的瀏覽器以下:ie、firefox、chrome、safari,聽說opera還不支持,就連startssl官方站都沒法支持,不知爲什麼~~~~原先startssl是不支持ie的,可是不知startssl官方是怎麼搞定微軟的,如今ie也支持了startssl的ssl證書。廢話少說,上圖說註冊startssl獲取一年免費ssl證書的步驟:shell

3.1 startssl註冊瀏覽器

點擊查看原圖

進入startssl官方站,點擊右上角那把小鎖,上圖,打開頁面以下:安全

點擊查看原圖

點擊Sign-up進行註冊,打開頁面以下:服務器

點擊查看原圖

填寫就很少說了,第一欄是名字,使用英文更好一點,第二欄是地址,最好精確到街道以及門牌號,第三列是郵政編碼以及所在城市的簡稱(咱搞了個所在城市的拼音,仍是經過了嘛,哈哈);第四列是所在國家,默認china無需更改,第五列選擇所在省份,最好選擇跟你的ip地址所在地是一致的;第六列是你的手機號或者座機號,這年頭手機氾濫,填個本身的手機號獲得一個免費的一年的ssl證書也無可厚非;第七列須要注意下方的說明,startssl不支持qq.com的郵箱,也就是說你填寫的電子郵箱的時候不要用qq郵箱,國內的通過測試16三、sina、yahoo.cn都可,最好使用gmail。

點擊查看原圖

填寫準確,點解continue(繼續)來到郵箱驗證,打開剛剛填寫的郵箱,有一封來至starssl的註冊郵件,裏面有驗證碼:以下,郵件正文中的第二行」code is ****「的,那個is後面的就是這個驗證碼,複製,填入到上圖中,點擊continue繼續,註冊即告成功(下圖2),接下來等待startssl的人工審覈,審覈經過後會發一封郵件給你,這裏用我已經註冊成功的郵件爲例說明:

點擊查看原圖

點擊查看原圖

3.2 登陸帳號的激活

上述startssl人工審覈經過後發給你的郵件(以下圖1),打開後有一個有個連接,複製到瀏覽器地址欄回車打開的地址就進行帳號的證書<非你申請的ssl證書,這裏只是一個帳戶登陸證書,就跟國內某些銀行的登陸可使用證書登陸同樣>安裝,startssl不經過帳號密碼方式登陸,而只支持經過他們本身的證書方式登陸,因此這裏打開的頁面其實是一個你的帳號證書的安裝頁面(一個鏈接地址)以及一個驗證碼,這裏最好使用firefox或者chrome,有時候ie會安裝失敗,一旦失敗就意味着你得從新註冊.

點擊查看原圖

大體說下操做:複製郵件(上圖)第四行的url地址,粘貼到firefox地址欄中回車,打開的頁面中有個輸入框,輸入上圖郵件中第五列中的process is後面的字符串,點擊繼續出現以下頁面,以下圖,選擇默認的高級便可,點擊continue繼續

點擊查看原圖

繼續後來到安裝你的帳號證書的頁面,點擊install,以下圖:

點擊查看原圖

通過一會(通常不超過3分鐘)就能夠出現以下界面:說明你的帳號證書已經安裝成功啦~~~~備份一下這個證書咯,之後就能夠用這個證書到別處登陸了,若是不慎丟失這個證書,之後就只能從新註冊咯~~~~

點擊查看原圖

註冊成功後,點擊finish來到控制面板,以下圖:

點擊查看原圖

3.3 添加並驗證域名全部者信息

添加你的域名,點擊上圖右側那個菜單,也就是」Validations Wizard「咯,打開的頁面以下:選擇域名驗證,也就是 Domain Name XX咯,以下圖,自動進入下一步填寫域名

點擊查看原圖

來到填寫域名的位置,以下圖:

點擊查看原圖

輸入你的域名,選擇後綴,繼續打開驗證方式選擇,以下圖,選擇你的域名註冊時留下的郵箱地址便可,固然若是你的域名下有相應的郵箱地址也是能夠的(若是掛在QQ域名郵箱下就算了,你仍是老老實實的選擇註冊域名時填寫的郵箱吧~~~哈哈).....點擊continue繼續下一步

點擊查看原圖

打開剛纔選擇的郵箱,會收到一封驗證碼郵件,以下,複製驗證碼,輸入到框框內點擊繼續(不慎,沒有留下截圖,不過還好,也就是一個輸入驗證碼的框框),來到下圖2,點擊finish便可完成域名的全部者認證:

點擊查看原圖

點擊查看原圖

3.4 激動人心的時刻來了,申請免費一年的ssl證書

上一步finish後又來到控制面板,以下圖:點擊中間那個菜單,也就是」Certificates Wizard「咯~~~~

點擊查看原圖

打開的頁面以下:選擇web server SSL/TSl Certificate 也就是傳說中的支持https訪問的ssl證書,點擊continue繼續..

點擊查看原圖

生成公匙,也就是https中的.key文件,以下圖:

點擊查看原圖

輸入一個長度合適的密碼並重復<第二欄重複密碼>,最好超過16位,並且字母、數字混雜(請記住這個密碼,稍後還會用,這裏就菜鳥的叫法把這個密碼叫作 證書密碼 ,之後提到證書密碼,就是指這個密碼咯,之後再也不贅述),第三欄選擇加密強度以及第四欄的加密算法,這裏所有選默認。點擊continue繼續--------------<ps:這裏生成的也就是一個公用密碼文本,若是你懂得使用openssl本身生成,這裏就能夠選擇skip跳過,固然既然按咱這個教程,就老老實實輸入一個密碼而且重複一次,而後continue,多 保險咧~~~哈哈>,點擊後會有一個彈窗,確認便可(好像是左邊那個按鈕,哈哈)

來到以下頁面:也就是剛纔用密碼生成的一個key文件, 請複製框框內的文本<安全起見,告訴你怎麼整,先鼠標點入框框內,而後全選,什麼?不知道全選?Ctrl+a啊~,再複製,什麼?不知道複製?Ctrl+c啊;固然你也能夠Ctrl+x剪切掉> ,而後將複製的內容是用文本編輯器粘貼<記事本會用吧~~~>,保存文件名爲ssl.key<必定要這個破名字嗎?不必定啊,可是爲了後面的nginx的配置好講解一點,咱就忍忍吧~~~>,點擊continue繼續

點擊查看原圖

來到以下頁面:選擇已經認證過的域名啦~~~~~以下:直接continue繼續

點擊查看原圖

來到,你須要爲你的域名下的哪一個主機添加https訪問的位置,這裏就看你本身的配置啦!~這列示例填寫一個www主機,也就是在框框內填入www啦~~~~點擊continue繼續.....

點擊查看原圖

來到以下界面,沒啥好說的,直接continue繼續......

點擊查看原圖

可能須要等待幾十秒,startSSl正在後臺生產crt文件呢~~你總得讓人家的服務器有個喘息的機會吧~~~~等來的就是以下的頁面<ps:之前startssl在此步驟後須要人工審覈後再給你發送郵件以及code進行證書提取,可是如今好像直接是一鼓作氣了,反正我這裏的示例是一鼓作氣,直接就將crt證書給你生成了~~~~>

點擊查看原圖

複製這個框框裏的文本,仍是用個文本編輯器粘貼保存爲ssl.crt文件<操做方法跟前面保存那個破名字叫ssl.key的同樣,就不囉嗦了>......

以上的的全部步驟不過是爲了獲得兩個破東西,一個是ssl.key<這個若是你懂得openssl,本身就能夠搞定>,一個是ssl.crt文件,這個ssl.crt文件纔是王道,纔是以上廢了這麼多精力所獲得的ssl證書文件。好了,接着說nginx下的配置使你的服務器支持https的訪問。

4、nginx的配置(linux平臺)

爲了便於說明,咱來個約定:

約定:假設你的nginx安裝在/usr/local/server/nginx下,配置文件默認,也就是/usr/local/server/nginx/conf下。同時假設你的服務器已經支持openssl

假設在你的/usr/local/server/nginx/conf下有個文件夾叫ssl,也就是/usr/local/server/nginx/conf/ssl咯

4.1 上傳那兩個破文件也就是ssl.key和ssl.crt文件咯---能夠用一個叫SSH Secure Shell的玩意中的Secure File Transfer Client來上傳;上傳這個兩個文件到/usr/local/server/nginx/conf/ssl下 

其實,人家startssl有個教程 地址:https://www.startssl.com/?app=42,可是仍是囉嗦的講解一下~~

4.2 既然是ssl關鍵文件,那就保護一下啦~~ 修改ssl.key文件的屬性便可,什麼不會?

putty遠程登陸服務器,最好是root帳戶

進入/usr/local/server/nginx/conf/ssl目錄,什麼?不會? 

shell代碼:cd /usr/local/server/nginx/conf/ssl 

更改ssl.key文件屬性

shell代碼:chmod 600 ssl.key

4.3 安裝ssl.key

經過openssl安裝導入,之後啓動nginx時就沒必要每次都須要輸入那個破「證書密碼」了,什麼?哪裏來的「證書密碼」,看前面申請這個破ssl.key時的約定吧!openssl導入證書公用密碼<實際上人家叫公匙啦~~~>,仍是在/usr/local/server/nginx/conf/ssl目錄下:

shell代碼:openssl rsa -in ssl.key -out /usr/local/server/nginx/conf/ssl_ca.key

4.4 獲取startssl根證書併合並你本身的證書

獲取startssl官方的根證書<暫且就這麼叫吧~~~其實人家不叫這個的,沒看到是個pem文件嘛~~>,wget獲取

shell代碼:

wget http://www.startssl.com/certs/ca.pem

wget http://www.startssl.com/certs/sub.class1.server.ca.pem

合併:

shell代碼:cat ssl.crt sub.class1.server.ca.pem ca.pem > /usr/local/server/nginx/conf/ssl_ca.crt

ps:處理下生成的這個ssl_ca.crt文件,否則之後就不是坑爹了,而是坑祖宗了·~~~

也就是會出現以下錯誤:

點擊查看原圖

處理方法很簡單,直接vi /usr/local/server/nginx/conf/ssl_ca.crt

找到以下圖的位置:

點擊查看原圖

在綠色那個地方回車一下而後保存便可。什麼回車了無效?vi的使用就不告訴你了,這是祕密~~~~

4.5 配置nginx支持https訪問

配置nginx的配置文件,默認是vi /usr/local/server/nginx/conf/nginx.conf 這裏確實是很差說,直接上圖:看不清楚就點小圖看大圖咯~~~

點擊查看原圖

---

轉載請註明本文標題和連接:《https安全連接的配置教程:startSSl免費證書申請與nginx的https支持配置

相關文章
相關標籤/搜索