WebScarab如何生成自定義證書
使用WebScarab代理SSL對話時,您可能希望避免對無法識別的證書產生的一些警告。您可以生成自定義SSL證書來刪除這些警告消息,如果您具有足夠新的WebScarab版本(初始支持于2008/08/05添加),這很簡單。繼續閱讀以了解操作方法。
背景
下面是將WebScarab用作SSL連接的攔截代理時發生的情況的說明。
| server |<–[1]–>| WebScarab |<–[2]–>| browser |
對于[1],您使用的是您正在瀏覽的網站上的“真正的”SSL證書。該SSL證書由公認的證書頒發機構(CA)簽名。CA的特殊之處在于瀏覽器了解并信任它們。例如在Firefox中:
- 打開編輯->首選項->高級->加密
- 查看證書按鈕
- 權威機構標簽
查看內置信任CA的列表。唯一需要信任此證書的是WebScarab,它會信任所有證書,無論是否有效。
對于[2],您正在使用WebScarab隨附的自簽名server.p12證書。[1]和[2]之間的區別在于,對證書進行簽名的CA不是內置在瀏覽器中的,因此默認情況下它們不信任它們。此外,此證書的域名與您的瀏覽器正在訪問的域不匹配。默認值為webscarab CA和webscarab的主機名。
生成證書
由于您的瀏覽器不信任上面[2]中簽署server.p12的CA,因此您有兩種選擇:
指示瀏覽器信任證書。這將適用于CA部分,但不適用于主機名。瀏覽器仍會提示您,因此實際上并沒有太大幫助,也未建議這樣做,因為許多人都擁有此CA證書,并且可以使用它為任意站點創建SSL證書。我知道您可以讓Firefox永久信任[2]中使用的CA,盡管在Firefox 3中需要一些點擊-大約6或7次單擊,并且您仍然遇到主機名不匹配的問題。
使用.p12文件和CA證書。您必須讓WebScarab使用新的.p12文件并將CA證書安裝到瀏覽器中。
WebScarab Git存儲庫中有一個腳本可以執行此操作。
該腳本將為在命令行上作為參數提供的站點創建一個特定于服務器的密鑰和證書。如果這是第一次運行腳本,它還將創建一個CA cert,然后您可以將其導入到瀏覽器中。
如果你像這樣調用腳本:
$ ./cert.sh www.example.com
它將生成一堆輸出,并為WebScarab創建一個www.example.com.p12 文件和一個ca_cert.pem文件(這是用于對www.example.com.p12 進行簽名的CA)。該腳本可以在Linux 和OS X上正常運行,但只能在Cygwin下的Windows上運行。
以www.example.com.p12 (假設您像上面那樣運行腳本)為例,并讓WebScarab知道。為此,您需要將其放置在$ {WEBSCARAB_HOME} / certs /中。每當對SSL網站中的文件< sitename> .p12發出請求時,WebScarab都會在該目錄中進行檢查,如果找到請求,它將優先于默認服務器證書使用它。
獲取ca_cert.pem文件,并將瀏覽器配置為信任該CA。對于Firefox:
- 打開編輯->首選項->高級->加密
- 查看證書按鈕
- 權威機構
- 單擊導入按鈕,然后導航到ca_cert.pem文件
確保至少選中“信任此CA以標識網站”框。導入時選擇-它會彈出一個包含該信息的窗口。
僅供參考:如果同時使用Firefox和IE,則都需要進行配置,因為它們會將受信任的CA列表保存在不同的位置。
增加的獎勵 如果您保留cert.sh的工作目錄(推薦!),則可以創建新的自定義SSL證書,而無需導入新的CA證書。如果您知道將要測試的所有域,則可以多次運行cert.sh,然后只需重新啟動WebScarab一次就可以識別它們。
這是cert.sh腳本創建的目錄結構:
./
|-- cert.sh
|-- sslcerts
| |-- ca_cert.pem
| |-- certindex.txt
| |-- certindex.txt.attr
| |-- certindex.txt.old
| |-- certs
| | `-- 100001.pem
| |-- openssl.cnf
| |-- private
| | |-- ca_key.pem
| | `-- www.example.com-key.pem
| |-- serial
| |-- serial.old
| |-- www.example.com-cert.pem
| `-- www.example.com-req.pem
`-- www.example.com.p12
3 directories, 14 files
WebScarab中文漢化使用教程
推薦文章: