• 泛域名ssl證書搭建全攻略!

    1

    無憂在線項目管理(www.5upm.com)是禪道開發團隊給大家提供的一款在線的項目管理服務,它提供了禪道軟件專業版本的功能,同時內置了subversiongit的源碼托管服務,這樣創業型團隊或者跨地域團隊就可以異地辦公,實現跨地域的協同管理。

    在實際運營無憂在線過程中,安全是很多客戶比較關心的問題。對于這個問題我們通過很多種手段來加以解決,比如操作系統層面,應用程序層面等等。最近無憂在線項目管理又上線了https訪問功能,進一步加強了無憂在線的安全性。

    下面是筆者配置無憂在線https訪問的過程,謹供大家參考。

    一、https協議簡介

    我們平常訪問網站默認使用的是http協議,但http協議是沒有加密的,所有的內容都是以明文的方式在網絡上進行傳輸,安全性無妨保證。https協議則很好的解決了這個問題。

    根據維基百科(http://zh.wikipedia.org/wiki/HTTPS)的介紹,HTTPS的主要思想是在不安全的網絡上創建一安全信道,并可在使用適當的加密包和服務器證書可被驗證且可被信任時,對竊聽和中間人攻擊提供合理的保護

    HTTPS的信任繼承基于預先安裝在瀏覽器中的證書頒發機構(如VeriSignMicrosoft等)(意即“我信任證書頒發機構告訴我應該信任的”)。因此,一個到某網站的HTTPS連接可被信任,當且僅當:

    ü 用戶相信他們的瀏覽器正確實現了HTTPS且安裝了正確的證書頒發機構;

    ü 用戶相信證書頒發機構僅信任合法的網站;

    ü 被訪問的網站提供了一個有效的證書,意即,它是由一個被信任的證書頒發機構簽發的(大部分瀏覽器會對無效的證書發出警告);

    ü 該證書正確地驗證了被訪問的網站(如,訪問https://example時收到了給“Example Inc.”而不是其它組織的證書);

    ü 或者互聯網上相關的節點是值得信任的,或者用戶相信本協議的加密層(TLSSSL)不能被竊聽者破壞。

    因此部署https協議訪問最為關鍵的就是證書。下面來看下https證書的分類。

    二、https(ssl)證書分類

    2.1 從證書頒發機構來分

    從證書的簽發機構來分,可以分為自我簽發和專業的CA認證機構簽發兩種。如果只是公司內部使用,可以采用自我簽發的方式來生成ssl證書,優勢是完全免費的,部署也方便快捷。但缺點是瀏覽器默認認為這個自我簽發的證書是不被信任的,會彈出警告頁面,提示用戶進行確認。比如ie下面這提示這樣的頁面:

    1.png

    這種方式給客戶提供服務就非常不好。所以還是要購買專業CA機構頒發的證書。

    2.2 從證書認證等級來分

    從證書認證的等級來分,ssl證書可以分為DV, OVEV三種:

    DVDomain Validation 的縮寫,意思就是對網站域名所有權進行驗證。CA認證機構會向域名持有者的郵箱發送相應的郵件,以確認證書和域名的所有權關系。其特點是簡單快捷,價格便宜,缺點是無法保證網站經營者的身份,因此一般僅用來提供數據加密的功能。

    OVOrganization Validation 的縮寫,這種證書在頒發的時候會對網站所有單位的身份進行證實行驗證,所以一般電子商務類的網站往往會做OV的認證。價格當然也會比較昂貴,證書頒發周期也會比較久。

    EVExtended Validation 的縮寫,也是最嚴格的身份驗證,當用戶在訪問通過EV認證的網站時候,瀏覽器的顯示為綠色,當然價格也是相當的昂貴。:)

    2.3 從證書適用域名個數來分

    一個ssl證書都有其對應的域名,從其適用的域名個數來分可以分為單域名、多域名和泛域名證書。顧名思義,單域名證書只能適用于一個域名,多域名證書可以適用于多個域名。而泛域名證書,又稱為通配符型(wildcard)證書,可以匹配*.domain.name這種形式。

    我們無憂在線給客戶提供的訪問路徑都是subdomin.5upm.com的形式,比如您申請一個abc的二級域名,那么訪問無憂在線項目管理服務的網址就是http://abc.5upm.com。我們要解決的就是為每一位客戶的二級域名提供安全的https訪問服務,那么泛域名ssl證書就是我們的選擇。

    下面就是來選購ssl證書了。Ssl證書不同的廠商價格都有不同,我們在網上搜索了之后,找到了一個cheapssls.com的網站,它專門代理各個廠商的ssl證書,價格比較實惠,下面我們是我們在cheapssls.com網站上面購買證書、激活證書的全過程。

    三、購買證書

    3.1 注冊用戶

    第一步是在cheapssls.com網站注冊用戶。訪問cheapssls.com,選擇頁面右上角的"Sign in"鏈接,按照提示注冊一個帳號,過程不再贅述。

    2.png

    3.2 選擇廠商

    注冊完帳號之后,就可以來選擇要購買的證書和廠商了。我們要購買的是泛域名證書,所以選擇wildcard ssl certificates,如下圖:

    3.png

    我們選擇了RapidSSl提供的證書:

    4.png

    3.3 下訂單

    確定好證書類型和廠商之后,就可以下訂單了:

    5.png

    一般購買的年份越多,折扣越低。筆者購買的這一款價格是98.99$,算起來還是比較實惠的。

    3.4 支付

    因為國外網站都使用美元結算,國內用戶購買的話,可以通過信用卡或者paypal支付。信用卡需要帶有mastcard或者visa標志的,這種信用卡是支持外幣結算的。

    6.png

    筆者選擇使用paypal支付:

    7.png

    然后根據頁面的提示到paypal網站支付就可以了。支付成功之后,下一步的操作就是來激活證書了。

    四、激活證書

    4.1 生成csr文件 

    激活證書之前需要在證書安裝的服務器上面生成csr文件,linux下面可以openssl來創建下面的這些文件,基本的步驟和命令如下:

    4.1.1 生成server.key文件。

    首先調用openssl命令來生成server.key文件。

    z@colinux:/tmp$ openssl genrsa -des3 -out server.key 2048

    Generating RSA private key, 2048 bit long modulus

    .................................................................................+++

    ..+++

    e is 65537 (0x10001)

    Enter pass phrase for server.key:

    Verifying - Enter pass phrase for server.key:

    其中需要注意的是加密強度要采用2048,同時命令還會讓你輸入一個保護key文件的密碼。

    4.1.2 根據server.key文件,生成server.csr文件

    有了server.key文件之后,就可以來生成server.csr文件了。

    z@colinux:/tmp$ openssl req -new -key server.key -out server.csr

    Enter pass phrase for server.key:

    You are about to be asked to enter information that will be incorporated

    into your certificate request.

    What you are about to enter is what is called a Distinguished Name or a DN.

    There are quite a few fields but you can leave some blank

    For some fields there will be a default value,

    If you enter '.', the field will be left blank.

    -----

    Country Name (2 letter code) [AU]:CN

    State or Province Name (full name) [Some-State]:ShanDong

    Locality Name (eg, city) []:QingDao

    Organization Name (eg, company) [Internet Widgits Pty Ltd]:QingDaoEasySoft

    Organizational Unit Name (eg, section) []:Dev

    Common Name (eg, YOUR name) []:*.5upm.com

    Email Address []:chunsheng@cnezsoft.com

    Please enter the following 'extra' attributes

    to be sent with your certificate request

    A challenge password []:

    An optional company name []:

    這個命令里面需要注意的地方:

    ü Country Name,填寫CN,代表中國。

    ü State or Province Name,填寫漢語拼音的省份即可。

    ü Locality Name,填寫所在城市的漢語拼音即可。

    ü Organization Name,填寫公司的漢語拼音即可。

    ü Organizational Unit Name, 填寫所在的部門的漢語拼音。

    ü Common Name,這個是最關鍵的,需要填寫ssl證書對應的域名,泛域名一定要寫成*.doomain.com的形式。

    ü Email Address,填寫聯系人郵箱即可。

    通過上面的命令,我們就可以生成server.csr文件了,下面的步驟就是用這個文件來申請激活證書了。

    4.2 申請激活

    還是回到cheapssl網站,登錄系統,然后訪問my ssl,選擇購買的證書,激活:

    8.png

    會出現一個申請的表單:

    9.png

    在這個頁面會讓你選擇服務器的類型,我們選擇是apache + openssl。然后下面的文本框里面將剛才生成的server.key里面的內容拷貝進來,然后點擊下一步,驗證域名的所有者身份:

    0.png

    可以有幾種類型,一種是通過你所申請的域名的郵箱,比如筆者用的5upm.com,那么就需要一個@5upm.net的郵箱,還有一種方式就是通過域名所有人的郵箱來進行驗證。

    選擇了驗證方式之后,,系統會提示已經激活成功,下面就是需要登錄剛才填寫的郵箱,確認這次申請。

    11.png

    這是收到的郵件的內容,點擊里面的鏈接進行確認:

    22.png

    選擇"I Approve"

    33.png

    之后就會收到一封email,里面包含了正式的ssl證書和INTERMEDIATE CA文件。

    這是ssl證書。

    44.png

    這是INTERMEDIATE CA文件。

    下面就是配置apache來使用證書了。

    五、配置證書

    配置apache證書之前,需要下打開ssl模塊,并配置apache監聽443端口,在此不再贅述,網上有很多資料可以參考。將剛才通過郵件拿到的ssl文件和ca文件分別保存成server.crtserver.pem。這樣加上我們之前生成的keycsr文件,我們總共有四個文件,server.key, server.csr, server.crt, server.pem,將這四個文件存放在一個目錄下面,比如/etc/apaches/ssl/下面,然后配置apache的虛擬機:

      SSLEngine On

      SSLCertificateFile /etc/apache2/ssl/server.crt

      SSLCertificateKeyFile /etc/apache2/ssl/server.key

      SSLCertificateChainFile /etc/apache2/ssl/server.pem

      ServerAlias  *.5upm.com

      ServerAlias  *.5upm.cn

      DocumentRoot /var/www

      

      Options FollowSymLinks

      AllowOverride All

      

    配置完成之后,重啟apache,順利的話,就可以通過https來訪問了。下面是我們無憂在線的訪問,地址欄已經變成了黃色的加密欄(不同瀏覽器顯示不同)

    55.png

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色