本文討論在簡(jiǎn)體中文Linux系統(tǒng)中的Tomcat Web服務(wù)器上制作數(shù)字證書的方法。
數(shù)字證書采用PKI(Public Key Infrastructure)公開密鑰基礎(chǔ)架構(gòu)技術(shù),利用一對(duì)互相匹配的密鑰進(jìn)行加密和解密。但在內(nèi)部系統(tǒng)應(yīng)用中,不需要專門CA(認(rèn)證授權(quán)中心)的認(rèn)證證書,可自己建立認(rèn)證服務(wù)器。可以用Windows 2003 Server證書頒發(fā)機(jī)構(gòu)作為CA,用Java制作中文申請(qǐng)后向Windows 2003 Server證書頒發(fā)機(jī)構(gòu)CA申請(qǐng)證書,這樣就可以得到簡(jiǎn)體中文數(shù)字證書了。本文討論在簡(jiǎn)體中文Linux系統(tǒng)中的Tomcat Web服務(wù)器上制作數(shù)字證書的方法。
證書的產(chǎn)生方法
在Linux下做CA,必須安裝openssl,該軟件的最新版本可以從www.openssl.org下載。不過,即使直到最新版本,openssl輸入簡(jiǎn)體中文信息后產(chǎn)生的證書也會(huì)顯示為亂碼。還好,有兩個(gè)辦法可以解決這個(gè)問題: 一是修改openssl源程序; 另一個(gè)是用UTF-8編碼進(jìn)行處理。由于前一種方法比較復(fù)雜,本文主要討論后一種方法。在輸入中文字符時(shí),openssl可以正確處理UTF-8的字符編碼,不能處理簡(jiǎn)體中文的gb2312編碼。于是可將簡(jiǎn)體中文的用戶信息輸入到配置文件中,再轉(zhuǎn)換為UTF-8編碼,生成證書申請(qǐng)時(shí)使用配置文件的缺省信息,即可產(chǎn)生正確顯示中文的證書。其方法如下:
1.假設(shè)配置文件為openssl.cnf,編輯修改如下內(nèi)容:
string_mask=utf8only
countryName_default=CN stateOrProvinceName_default=省份
localityName_default=城市 O.organizationName_default=部門
organizationalUnitName_default=單位 commonName_default=名字
2.用iconv命令將文件格式轉(zhuǎn)換為UTF-8編碼:
iconv -f gbk -t utf-8 openssl.cnf > openssl_utf8.cnf
3.用openssl生成證書簽名請(qǐng)求時(shí),加上”-utf8”和將配置文件指定為openssl_utf8.cnf:
openssl req -utf8 -config openssl_utf8.cnf -new -out req.csr
除了輸入密碼,其他的一律選擇回車,使用顯示為亂碼的缺省值,就可產(chǎn)生包含正確中文信息的證書申請(qǐng)文件req.csr,這樣的申請(qǐng)方式可用于CA和客戶證書的申請(qǐng)。Tomcat服務(wù)器證書需要生成keystore文件,用Java工具keytool命令生成,安裝簡(jiǎn)體中文版本的Java,可正確生成簡(jiǎn)體中文的證書申請(qǐng)。
新聞熱點(diǎn)
疑難解答
圖片精選