泛域名ssl證書搭建全攻略!
無憂在線項目管理(www.5upm.com)是禪道開發團隊給大家提供的一款在線的項目管理服務,它提供了禪道軟件專業版本的功能,同時內置了subversion和git的源碼托管服務,這樣創業型團隊或者跨地域團隊就可以異地辦公,實現跨地域的協同管理。
在實際運營無憂在線過程中,安全是很多客戶比較關心的問題。對于這個問題我們通過很多種手段來加以解決,比如操作系統層面,應用程序層面等等。最近無憂在線項目管理又上線了https訪問功能,進一步加強了無憂在線的安全性。
下面是筆者配置無憂在線https訪問的過程,謹供大家參考。
一、https協議簡介
我們平常訪問網站默認使用的是http協議,但http協議是沒有加密的,所有的內容都是以明文的方式在網絡上進行傳輸,安全性無妨保證。https協議則很好的解決了這個問題。
根據維基百科(http://zh.wikipedia.org/wiki/HTTPS)的介紹,HTTPS的主要思想是在不安全的網絡上創建一安全信道,并可在使用適當的加密包和服務器證書可被驗證且可被信任時,對竊聽和中間人攻擊提供合理的保護。
HTTPS的信任繼承基于預先安裝在瀏覽器中的證書頒發機構(如VeriSign、Microsoft等)(意即“我信任證書頒發機構告訴我應該信任的”)。因此,一個到某網站的HTTPS連接可被信任,當且僅當:
ü 用戶相信他們的瀏覽器正確實現了HTTPS且安裝了正確的證書頒發機構;
ü 用戶相信證書頒發機構僅信任合法的網站;
ü 被訪問的網站提供了一個有效的證書,意即,它是由一個被信任的證書頒發機構簽發的(大部分瀏覽器會對無效的證書發出警告);
ü 該證書正確地驗證了被訪問的網站(如,訪問https://example時收到了給“Example Inc.”而不是其它組織的證書);
ü 或者互聯網上相關的節點是值得信任的,或者用戶相信本協議的加密層(TLS或SSL)不能被竊聽者破壞。
因此部署https協議訪問最為關鍵的就是證書。下面來看下https證書的分類。
二、https(ssl)證書分類
2.1 從證書頒發機構來分
從證書的簽發機構來分,可以分為自我簽發和專業的CA認證機構簽發兩種。如果只是公司內部使用,可以采用自我簽發的方式來生成ssl證書,優勢是完全免費的,部署也方便快捷。但缺點是瀏覽器默認認為這個自我簽發的證書是不被信任的,會彈出警告頁面,提示用戶進行確認。比如ie下面這提示這樣的頁面:
這種方式給客戶提供服務就非常不好。所以還是要購買專業CA機構頒發的證書。
2.2 從證書認證等級來分
從證書認證的等級來分,ssl證書可以分為DV, OV和EV三種:
l DV是Domain Validation 的縮寫,意思就是對網站域名所有權進行驗證。CA認證機構會向域名持有者的郵箱發送相應的郵件,以確認證書和域名的所有權關系。其特點是簡單快捷,價格便宜,缺點是無法保證網站經營者的身份,因此一般僅用來提供數據加密的功能。
l OV是Organization Validation 的縮寫,這種證書在頒發的時候會對網站所有單位的身份進行證實行驗證,所以一般電子商務類的網站往往會做OV的認證。價格當然也會比較昂貴,證書頒發周期也會比較久。
l EV是Extended 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"鏈接,按照提示注冊一個帳號,過程不再贅述。
3.2 選擇廠商
注冊完帳號之后,就可以來選擇要購買的證書和廠商了。我們要購買的是泛域名證書,所以選擇wildcard ssl certificates,如下圖:

我們選擇了RapidSSl提供的證書:
3.3 下訂單
確定好證書類型和廠商之后,就可以下訂單了:
一般購買的年份越多,折扣越低。筆者購買的這一款價格是98.99$,算起來還是比較實惠的。
3.4 支付
因為國外網站都使用美元結算,國內用戶購買的話,可以通過信用卡或者paypal支付。信用卡需要帶有mastcard或者visa標志的,這種信用卡是支持外幣結算的。
筆者選擇使用paypal支付:
然后根據頁面的提示到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,選擇購買的證書,激活:
會出現一個申請的表單:
在這個頁面會讓你選擇服務器的類型,我們選擇是apache + openssl。然后下面的文本框里面將剛才生成的server.key里面的內容拷貝進來,然后點擊下一步,驗證域名的所有者身份:
可以有幾種類型,一種是通過你所申請的域名的郵箱,比如筆者用的5upm.com,那么就需要一個@5upm.net的郵箱,還有一種方式就是通過域名所有人的郵箱來進行驗證。
選擇了驗證方式之后,,系統會提示已經激活成功,下面就是需要登錄剛才填寫的郵箱,確認這次申請。
這是收到的郵件的內容,點擊里面的鏈接進行確認:
選擇"I Approve":
之后就會收到一封email,里面包含了正式的ssl證書和INTERMEDIATE CA文件。
這是ssl證書。
這是INTERMEDIATE CA文件。
下面就是配置apache來使用證書了。
五、配置證書
配置apache證書之前,需要下打開ssl模塊,并配置apache監聽443端口,在此不再贅述,網上有很多資料可以參考。將剛才通過郵件拿到的ssl文件和ca文件分別保存成server.crt和server.pem。這樣加上我們之前生成的key和csr文件,我們總共有四個文件,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來訪問了。下面是我們無憂在線的訪問,地址欄已經變成了黃色的加密欄(不同瀏覽器顯示不同)。
無憂在線項目管理(www.5upm.com)是禪道開發團隊給大家提供的一款在線的項目管理服務,它提供了禪道軟件專業版本的功能,同時內置了subversion和git的源碼托管服務,這樣創業型團隊或者跨地域團隊就可以異地辦公,實現跨地域的協同管理。
在實際運營無憂在線過程中,安全是很多客戶比較關心的問題。對于這個問題我們通過很多種手段來加以解決,比如操作系統層面,應用程序層面等等。最近無憂在線項目管理又上線了https訪問功能,進一步加強了無憂在線的安全性。
下面是筆者配置無憂在線https訪問的過程,謹供大家參考。
一、https協議簡介
我們平常訪問網站默認使用的是http協議,但http協議是沒有加密的,所有的內容都是以明文的方式在網絡上進行傳輸,安全性無妨保證。https協議則很好的解決了這個問題。
根據維基百科(http://zh.wikipedia.org/wiki/HTTPS)的介紹,HTTPS的主要思想是在不安全的網絡上創建一安全信道,并可在使用適當的加密包和服務器證書可被驗證且可被信任時,對竊聽和中間人攻擊提供合理的保護。
HTTPS的信任繼承基于預先安裝在瀏覽器中的證書頒發機構(如VeriSign、Microsoft等)(意即“我信任證書頒發機構告訴我應該信任的”)。因此,一個到某網站的HTTPS連接可被信任,當且僅當:
ü 用戶相信他們的瀏覽器正確實現了HTTPS且安裝了正確的證書頒發機構;
ü 用戶相信證書頒發機構僅信任合法的網站;
ü 被訪問的網站提供了一個有效的證書,意即,它是由一個被信任的證書頒發機構簽發的(大部分瀏覽器會對無效的證書發出警告);
ü 該證書正確地驗證了被訪問的網站(如,訪問https://example時收到了給“Example Inc.”而不是其它組織的證書);
ü 或者互聯網上相關的節點是值得信任的,或者用戶相信本協議的加密層(TLS或SSL)不能被竊聽者破壞。
因此部署https協議訪問最為關鍵的就是證書。下面來看下https證書的分類。
二、https(ssl)證書分類
2.1 從證書頒發機構來分
從證書的簽發機構來分,可以分為自我簽發和專業的CA認證機構簽發兩種。如果只是公司內部使用,可以采用自我簽發的方式來生成ssl證書,優勢是完全免費的,部署也方便快捷。但缺點是瀏覽器默認認為這個自我簽發的證書是不被信任的,會彈出警告頁面,提示用戶進行確認。比如ie下面這提示這樣的頁面:
這種方式給客戶提供服務就非常不好。所以還是要購買專業CA機構頒發的證書。
2.2 從證書認證等級來分
從證書認證的等級來分,ssl證書可以分為DV, OV和EV三種:
l DV是Domain Validation 的縮寫,意思就是對網站域名所有權進行驗證。CA認證機構會向域名持有者的郵箱發送相應的郵件,以確認證書和域名的所有權關系。其特點是簡單快捷,價格便宜,缺點是無法保證網站經營者的身份,因此一般僅用來提供數據加密的功能。
l OV是Organization Validation 的縮寫,這種證書在頒發的時候會對網站所有單位的身份進行證實行驗證,所以一般電子商務類的網站往往會做OV的認證。價格當然也會比較昂貴,證書頒發周期也會比較久。
l EV是Extended 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"鏈接,按照提示注冊一個帳號,過程不再贅述。
3.2 選擇廠商
注冊完帳號之后,就可以來選擇要購買的證書和廠商了。我們要購買的是泛域名證書,所以選擇wildcard ssl certificates,如下圖:
![]() |
我們選擇了RapidSSl提供的證書:
3.3 下訂單
確定好證書類型和廠商之后,就可以下訂單了:
一般購買的年份越多,折扣越低。筆者購買的這一款價格是98.99$,算起來還是比較實惠的。
3.4 支付
因為國外網站都使用美元結算,國內用戶購買的話,可以通過信用卡或者paypal支付。信用卡需要帶有mastcard或者visa標志的,這種信用卡是支持外幣結算的。
筆者選擇使用paypal支付:
然后根據頁面的提示到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,選擇購買的證書,激活:
會出現一個申請的表單:
在這個頁面會讓你選擇服務器的類型,我們選擇是apache + openssl。然后下面的文本框里面將剛才生成的server.key里面的內容拷貝進來,然后點擊下一步,驗證域名的所有者身份:
可以有幾種類型,一種是通過你所申請的域名的郵箱,比如筆者用的5upm.com,那么就需要一個@5upm.net的郵箱,還有一種方式就是通過域名所有人的郵箱來進行驗證。
選擇了驗證方式之后,,系統會提示已經激活成功,下面就是需要登錄剛才填寫的郵箱,確認這次申請。
這是收到的郵件的內容,點擊里面的鏈接進行確認:
選擇"I Approve":
之后就會收到一封email,里面包含了正式的ssl證書和INTERMEDIATE CA文件。
這是ssl證書。
這是INTERMEDIATE CA文件。
下面就是配置apache來使用證書了。
五、配置證書
配置apache證書之前,需要下打開ssl模塊,并配置apache監聽443端口,在此不再贅述,網上有很多資料可以參考。將剛才通過郵件拿到的ssl文件和ca文件分別保存成server.crt和server.pem。這樣加上我們之前生成的key和csr文件,我們總共有四個文件,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來訪問了。下面是我們無憂在線的訪問,地址欄已經變成了黃色的加密欄(不同瀏覽器顯示不同)。