Nginx制作CSR申請文件
制作CSR 申請文件Nginx 是目前最新的高性能Web 服務(wù)器,和傳統(tǒng)的Apache 服務(wù)器相比,特別在大量的客戶并發(fā)連接下,性能要提高10倍以上。很多大型的PHP 網(wǎng)站都采用了Nginx 服務(wù)器。
制作CSR 申請文件
Nginx 是目前最新的高性能Web 服務(wù)器,和傳統(tǒng)的Apache 服務(wù)器相比,特別在大量的客戶并發(fā)連接下,性能要提高10倍以上。很多大型的PHP 網(wǎng)站都采用了Nginx 服務(wù)器。雖然Nginx 采用是Linux2.6內(nèi)核和epoll 架構(gòu)的網(wǎng)絡(luò)I/O模型,但在使用上和Apache 還是比較相似,是Apache 一個非常不錯的替代產(chǎn)品,下面主要介紹一下Nginx 下使用SSL 證書的一些內(nèi)容。
Nginx SSL主要采用BASE64位的PEM 文件格式,可以采用Openssl 命令行工具來生成CSR 文件,OpenSSL 工具是免費的,你可以下載使用已經(jīng)編譯好的OpenSSL 0.9.8.a for win32,下載地址是: http://www.myssl.cn/download/OpenSSL_0.9.8.a_Win32.zip
1、Openssl 是一個命令行工具,首先將下載包解壓到C:openssl下。
2、打開DOS 命令行窗口,進入C:openssl,輸入命令:
openssl req -new -nodes -keyout server.key -out server.csr
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
...........................
....................................
writing new private key to '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]:Shanghai
Locality Name (eg, city) []:Shanghai
Organization Name (eg, company) [Internet Widgits Ltd]:
Shanghai Fastcom Technology Co.,Ltd.
Organizational Unit Name (eg, section) []:IT Dept.
Common Name (eg, YOUR name) []:www.myssl.cn
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
,3、在完成了如上的交互信息輸入后,當(dāng)前目錄下將產(chǎn)生兩個文件:server.key 和 server.csr。請妥善保存這兩個文件,請不要泄露server.key 私鑰文件。
4、在這一命令執(zhí)行的過程中,系統(tǒng)會要求您填寫如下信息:
5、如何產(chǎn)生2048位的密鑰對?
在上面的命令行交互中,我們看到“Generating a 1024 bit RSA private key”,即系統(tǒng)缺省采用1024位的RSA 密鑰長度,一般來說1024位是足夠的,但是在申請EV 證書的時候,我們必須采用2048位的密鑰長度,要生成2048位的密鑰,可以修改上面的命令行:(斜體部分為增加的參數(shù))
openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr
6、如何制作中文的CSR 文件?
中文CSR 文件,主要指企業(yè)名稱、部門,城市,省份等信息采用中文,通用名和國家代碼仍然必須是英文的,GeoTrust 目前已經(jīng)全面支持中文的CSR ,要制作中文的CSR ,最簡單的辦法仍然是采用我們的在線CSR 生成器: https://www.myssl.cn/openssl/createcsr.asp
如果希望自己通過Openssl 工具來制作中文CSR 就需要多費一些工夫了,下面詳細(xì)介紹一下采用Openssl 命令行制作中文CSR 的方法。
Openssl 本身是可以支持UTF-8編碼來支持中文的,但是如果通過DOS 命令行是無法輸入UTF-8的中文字符的,所以我們必須采用Opnessl.cnf 配置文件的缺省值來實現(xiàn)中文字的輸入。采用一個文本編輯器,最好是支持utf-8字符的,我采用UltraEdit ,打開Openssl.cnf 文件,首先修改: string_mask = utf8only
這句話將強制字符的輸入采用UTF-8的編碼格式,然后修改缺省DN 信息,錄入我們需要合中文字符,如下 commonName_default
0.organizationName_default = www.myssl.cn = 上海迅通科技有限公司
,organizationalUnitName_default = IT 部門
stateOrProvinceName_default = 上海
localityName_default = 上海
countryName_default = CN
然后將文件按utf-8,no bom的編碼格式保存,在Ultraedit 下,請選擇“另存為”,格式為“UTF-8 - NO-BOM”。如果沒有可以支持UTF-8的編輯工具,也可以下載一個ICONV 來做編碼轉(zhuǎn)換工作。 準(zhǔn)備好openss.cnf 文件后,輸入命令行:
openssl req -utf8 -config config.cnf -new -nodes -batch -keyout server.key -out server.csr 系統(tǒng)將自動生成CSR 文件,保存在server.csr 中。
CSR 已經(jīng)做好,最后強調(diào),必須同時保存好server.csr 和server.key2個文件,尤其是server.key 一定丟失,將無法再使用這個證書。
安裝證書文件
1、將證書內(nèi)容存為一個文件:
您會收到一封來自迅通誠信的郵件,證書內(nèi)容附在郵件中。請將郵件中的證書部分的內(nèi)容用Vi 或Notepad 存成一個純文本文件。不要將其存成Microsoft Word 或其它字處理軟件格式,并確定證書內(nèi)容中不含有空行和空格,文件名可以為server.cer 。如下所示:
請根據(jù)產(chǎn)品下載對應(yīng)的中間證書:
?
?
? (QuickSSL Premium) 全球信SSL 企業(yè)版證書 (True BusinessID) 全球信SSL 企業(yè)版多域名證書 (True BusinessID Multidomain)
,?
?
? (True BusinessID Wildcard) 全球信SSL 至尊版證書 (True BusinessID EV) 閃快SSL 普及版 (RadidSSL)
請用Notepad 打開中間證書,并復(fù)制中間證書中的所有內(nèi)容,粘貼到Server.cer 文件最后,再次保存好server.cer 文件,并將此文件和制作CSR 時候生成的server.key 一起復(fù)制到服務(wù)器上。
2、修改nginx.conf 文件。
Nginx 的參數(shù)配置都在nginx.conf 文件中,SSL 配置也是如此,下面就是配置舉例:
server {
listen 443;
server_name www.myssl.cn;
ssl on;
ssl_certificate server.cer;
ssl_certificate_key server.key;
}
配置參數(shù)說明如下:
?
?
?
?
?
? listen 443: SSL 協(xié)議監(jiān)聽的端口,SSL 協(xié)議缺省使用443端口。 server_name: 指定SSL 網(wǎng)站主機名。 ssl on: SSL 功能打開,采用SSL 通信協(xié)議。 ssl_certificate: 證書文件,server.cer ssl_certificate_key 私鑰文件,server.key ssl_protocols
支持的SSL 協(xié)議標(biāo)準(zhǔn)。
3、重新啟動nginx ,如果是在Windows 2003下,輸入:
nginx -s stop
nginx
客戶端證書認(rèn)證
,如果要求客戶采用客戶證書認(rèn)證方式,可以在原來的配置下增加如下參數(shù):
server {
......
......
......
ssl_client_certificate on
ssl_client_certificate ca.cer
ssl_verify_depth 1
}
配置參數(shù)說明如下:
?
?
?
? ssl_verify_client on 要求SSL 客戶證書認(rèn)證。 ssl_client_certificate ca.cer 簽發(fā)客戶證書的CA 證書,用來驗證客戶證書。 ssl on: SSL 功能打開,采用SSL 通信協(xié)議。 ssl_verify_depth 1:
SSL 客戶證書認(rèn)證鏈長度。
證書的備份(導(dǎo)出)
在Nginx 下的證書備份是非常簡單的,打開nginx.conf 文件,找到ssl_certificate和
ssl_certificate_key指定的2個文件,通常是.cer(.crt)和.key 文件,將這兩個文件復(fù)制到備份媒質(zhì)上即可。
證書的恢復(fù)(導(dǎo)入)
要恢復(fù)Nginx 的證書同樣非常簡單,將備份的.cer 和.key 文件,復(fù)制到新的服務(wù)器上,然后參考上面服務(wù)器證書安裝說明,修改nginx.conf 文件即可。
Openssl 編譯簡介
1、Openssl 是開源的,可以到http://www.openssl.org/source/下載最新的版本。然后解壓到c:openssl。
2、要編譯Openssl ,需要下載并安裝ActivePerl ,并在系統(tǒng)路徑中添加“C:Perlsitebin;C:Perlbin”
,3、安裝Vs2003(也可以安裝VS2005,2008但這2個版本的VC 編譯出來的Openssl 是有BUG 的,在特定情況下會產(chǎn)生win32異常錯誤,僅適合偶爾用一下的情況)。
4、使用VS2003下的Visual Studio.net 2003 Command Prompt進入控制臺模式(這個模式會自動設(shè)置各種環(huán)境變量)
5、進入c:openssl。
6、輸入(注意大小寫): perl Configure VC-WIN32
7、輸入: msdo_ms
8、輸入: nmake -f msntdll.mak
9、Openssl 已經(jīng)編譯好了,執(zhí)行程序在out32dll 目錄下。