| ||||
|
|
|
5、如何產生2048位的密鑰對?
在上面的命令行交互中,我們看到“Generating a 1024 bit RSA private key”,即系統採用1024位元的RSA密鑰長度,一般來說1024位是足夠的,但是在申請EV憑證的時候,我們必須採用2048位的密鑰長度,要生成2048位的密鑰,可以修改上面的命令行:(斜體部分為增加的參數)
openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr
6、如何製作中文的CSR文件?
中文CSR檔,主要指企業名稱、部門,城市,省份等資訊採用中文,通用名和國家代碼仍然必須是英文的,GeoTrust目前已經全面支持中文的CSR,要製作中文的CSR,最簡單的辦法仍然是採用我們的線上CSR生成器: http://www.myssl.tw/openssl/createcsr.asp
如果希望自己通過Openssl工具來製作中文CSR就需要多費一些工夫了,下面詳細介紹一下採用Openssl命令行製作中文CSR的方法。
Openssl本身是可以支援UTF-8編碼來支援中文的,但是如果通過DOS命令行是無法輸入UTF-8的中文字元的,所以我們必須採用Opnessl.cnf配置檔的缺省值來實現中文字的輸入。採用一個文本編輯器,最好是支援utf-8字元的,我採用UltraEdit,打開Openssl.cnf檔,首先修改:
string_mask = utf8only
這句話將強制字元的輸入採用UTF-8的編碼格式,然後修改缺省DN資訊,錄入我們需要合中文字元,如下
commonName_default = www.myssl.tw 0.organizationName_default = 匯智資訊股份有限公司 organizationalUnitName_default = IT 部門 stateOrProvinceName_default = 台灣 localityName_default = 台北 countryName_default = TW
然後將文件按utf-8,no bom的編碼格式保存,在Ultraedit下,請選擇“另存為”,格式為“UTF-8 - NO-BOM”。如果沒有可以支援UTF-8的編輯工具,也可以下載一個ICONV來做編碼轉換工作。
準備好openss.cnf文件後,輸入命令行:
openssl req -utf8 -config config.cnf -new -nodes -batch -keyout server.key -out server.csr
系統將自動生成CSR檔,保存在server.csr中。
CSR已經做好,最後強調,必須同時保存好server.csr和server.key2個檔,尤其是server.key一旦丟失,將無法再使用這個憑證。
1、將憑證內容存為一個檔:
您會收到一封來自GeoTrust的郵件,憑證內容附在郵件中。如果憑證是以附件的形式(Cert.cer)夾帶在郵件中,您就可以直接應用它。如果您的憑證中以文本的方式存在郵件中,您就需要將郵件中的憑證部分的內容用Vi或Notepad存成一個純文字檔案。不要將其存成Microsoft Word 或其他文字處理軟體格式,並確定憑證內容中不含有空行和空格,檔案名可以為server.cer。如下所示:
2、修改httpd.conf文件。
Apache一般有2個版本下載,一個是帶SSL模組的,一個是不帶SSL的,請首先檢查自己的SSL是包含了SSL模組的,否則就沒法做了。Apache的參數配置都在httpd.conf檔中,SSL配置也是如此,此外還可以通過include httpd-ssl.conf來包含一個專門配置SSL的配置檔,如果啟動了httpd-include ssl.conf,則可以打開httpd-ssl.conf來配置相應參數。
一般,我們直接在httpd.conf檔中直接配置SSL參數:
#載入模組mod_ssl.so,此模組是啟用SSL功能必須的。 LoadModule ssl_module modules/mod_ssl.so #監聽443埠 Listen 443 #建立一個SSL的虛擬站點,避免SSL配置影響原來HTTP的站點配置。 <VirtualHost _default_:443> DocumentRoot "C:/Program Files/Apache2/htdocs" ServerName www.myssl.cn:443 SSLEngine on SSLCertificateFile "C:/SSL/server.cer" SSLCertificateKeyFile "C:/SSL/server.key" SSLCertificateChainFile "C:/SSL/chain.cer" ErrorLog "C:/Program Files/Apache2/logs/error.log" TransferLog "C:/Program Files/Apache2/logs/access.log" </VirtualHost> #說明主站是使用HTTP通信的,只有上面虛擬站點有SSL SSLEngine off
配置參數說明如下(完整的SSL配置參數見這裏):
3、重新啟動Apache,如果是在Linux下,輸入:
apachectl stop
apachectl startssl
1、基本客戶憑證認證
強制客戶對整個站點都必須採用客戶憑證的方式,可以在原來的配置下增加如下參數:
<VirtualHost _default_:443> ...... ...... ...... # 需要客戶有一個用戶端憑證,並由ca.cer這個CA憑證簽署 SSLVerifyClient require SSLVerifyDepth 1 SSLCACertificateFile conf/ssl.crt/ca.cer </VirtualHost>
2、如果只要求對特定目錄採用客戶憑證認證方式,其他目錄都不需要用戶端憑證,則可以採用如下配置:
<VirtualHost _default_:443> ...... ...... ...... # 需要客戶有一個用戶端憑證,並由ca.cer這個CA憑證簽署 SSLVerifyClient none SSLCACertificateFile conf/ssl.crt/ca.crt <Location /secure/area> SSLVerifyClient require SSLVerifyDepth 1 </Location> </VirtualHost>
強制HTTPS瀏覽,主要通過將用戶瀏覽的HTTP請求自動轉換為HTTPS請求,有兩種方式:一種是通過程式編寫的方式,詳見:"強制用戶通過SSL瀏覽網站" ;另一種方式則是通過Apache強大的Rewrite功能。
如果要針對整個網站全部執行HTTP自動轉為HTTPS的功能,可以在httpd.conf檔中,增加:
RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
如果,僅要求對\secure目錄下的內容強制採用HTTPS瀏覽,可以在httpd.conf文件中加入如下語句:
<Directory "C:\Program Files\htdocs\secure"> RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}/secure/$1 [L,R] </Directory>
如何對來自Internet並要瀏覽Intranet的客戶強制採用強加密的HTTPS通信,並採用基本或者客戶憑證的認證方式?同時還要確保來自Intranet的客戶可以進行HTTP瀏覽?
假設IntranetIP位址段是192.160.1.0/24,Intranet站點子區域的URL是/subarea ,則可以在HTTPS虛擬主機站點以外增加如下配置(這樣可以同時作用於HTTPS和HTTP):
SSLCACertificateFile conf/ssl.crt/company-ca.crt <Directory /usr/local/apache2/htdocs> # subarea以外的區域只允許來自Intranet的瀏覽 Order deny,allow Deny from all Allow from 192.168.1.0/24 </Directory> <Directory /usr/local/apache2/htdocs/subarea> # 在subarea以內,允許所有來自Intranet的瀏覽, # 但對來自Internet的瀏覽,僅允許HTTPS+Strong-Cipher+Password # 或者HTTPS+Strong-Cipher+Client-Certificate # 如果使用了HTTPS,則確保使用高強度加密 # 同時允許客戶以基本認證的形式認證 SSLVerifyClient optional SSLVerifyDepth 1 SSLOptions +FakeBasicAuth +StrictRequire SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 # 強制來自Internet的客戶使用HTTPS RewriteEngine on RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$ RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R] # 允許網路瀏覽和基本認證 Satisfy any # 控制網路瀏覽 Order deny,allow Deny from all Allow 192.168.1.0/24 # HTTP基本認證 AuthType basic AuthName "Protected Intranet Area" AuthBasicProvider file AuthUserFile conf/protected.passwd Require valid-user </Directory>
在Apache下的憑證備份是非常簡單的,打開httpd.conf檔,找到SSLCertificateFile和SSLCertificateKeyFile指定的2個檔,通常是.cer(.crt)和.key檔,將這兩個檔複製到備份媒質上即可。
要恢復Apache的憑證同樣非常簡單,將備份的.cer和.key檔,複製到新的伺服器上,然後參考上面伺服器憑證安裝說明,修改httpd.conf檔即可。
如果要在一個IP位址上部署多個SSL網站,一種辦法就是給每個網站分配不同的埠號,但這給用戶使用帶來很多麻煩。如果要在同一個IP位址的443埠上部署多個SSL網站,必須保證這些網站的功能變數名稱都能匹配相同的一張SSL憑證。這是因為SSL握手過程是通過IP+Port來進行通信,一個IP的443埠只能返給客戶一張SSL憑證(即使配置了多張憑證,也只能返回第一張,因為用戶請求資訊中,只有看到IP位址,無法區分用戶需要哪個憑證),如果這張憑證能夠滿足這些網站的主機名匹配要求,就可以使用。
一般能匹配多個主機名的憑證有通用憑證*.domain.com和多域名憑證(www.domain.com,ftp.domain.com等),以下我們提供一個典型同一個IP上的多主機名部署配置,www.domain.com對應的根目錄在WWW下,ftp.domain.com對應的根目錄在FTP下
NameVirtualHost 11.22.33.44:443 <VirtualHost 11.22.33.44:443> DocumentRoot "C:/Apache2.2/htdocs/www" ServerName www.domain.com SSLEngine on SSLCertificateFile "C:/Apache2.2/conf/server.cer" SSLCertificateKeyFile "C:/Apache2.2/conf/server.key" </VirtualHost> <VirtualHost 11.22.33.44:443> DocumentRoot "C:/Apache2.2/htdocs/ftp" ServerName ftp.domain.com SSLEngine on SSLCertificateFile "C:/Apache2.2/conf/server.cer" SSLCertificateKeyFile "C:/Apache2.2/conf/server.key" </VirtualHost>
1、Openssl是開源的,可以到http://www.openssl.org/source/下載最新的版本。然後解壓到c:\openssl。
2、要編譯Openssl,需要下載並安裝ActivePerl,並在系統路徑中添加“C:\Perl\site\bin;C:\Perl\bin”
3、安裝Vs2003(也可以安裝VS2005,2008但這2個版本的VC編譯出來的Openssl是有BUG的,在特定情況下會產生win32異常錯誤,僅適合偶爾用一下的情況)。
4、使用VS2003下的Visual Studio.net 2003 Command Prompt進入控制臺模式(這個模式會自動設置各種環境變數)
5、進入c:\openssl。
6、輸入(注意大小寫): perl Configure VC-WIN32
7、輸入: ms\do_ms
8、輸入: nmake -f ms\ntdll.mak
9、Openssl已經編譯好了,執行程式在out32dll目錄下。
法律聲明 | 用戶隱私條款 | 關於我們 | 聯繫我們 | 招聘資訊 Cloudmax 匯智企業網路服務: 虛擬主機 雲端主機 實體主機 主機代管 資安服務 網址申請 |
||
![]() ![]() |
||
本網站所顯示的商標、圖片、照片、文案為所屬公司所有 匯智資訊股份有限公司及上海迅通科技有限公司 (c) 版權所有,抄襲必究 Cloudmax Inc. & Shanghai Fastcom Technology Co., Ltd. Copyright Reserved |