2013-06-05 42 views
4

有沒有人有一個方便的腳本生成SSL證書,使得它產生的CA證書和服務器證書。更重要的是,創建它可以將CA證書導入我的受信任根列表(我的Windows系統),以便瀏覽器不會將該網站標記爲不可信。我想創建SSL sertificates爲我的測試環境

我用下面的腳本來做到這一點,但我無法說服我的瀏覽器信任的證書。 我非常感謝這裏的任何幫助。

# Generate a private key 
openssl genrsa -des3 -out server.key 1024 

# Generate a CSR (Certificate Signing Request) 
openssl req -new -key server.key -out server.csr 

# Remove Passphrase from Key 
cp server.key server.key.org 
openssl rsa -in server.key.org -out server.key 

# Generating a Self-Signed Certificate 
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 

問候, 卡什亞普

+0

您使用的是什麼瀏覽器? IE和Chrome使用Windows可信證書列表,但Firefox擁有自己的可信證書列表。 – gtrig

回答

0

你有一個信任的CA證書? 您正在生成一個始終被瀏覽器視爲不受信任的自簽名證書。

+0

嗯..這可能解釋它 - 瀏覽器將「自簽名」證書標記爲不可信。那麼,有沒有辦法讓人們不必購買證書就可以進行測試? – Kashyap

+0

這不完全正確。如果將自簽名證書添加到Windows可信證書列表中,那麼查看該可信列表的瀏覽器也將信任該證書以及證書已簽名的任何證書。 – gtrig

+0

@Kashyap作爲測試目的gtrig說,你可以添加證書到Windows信任的證書列表後,這個IE認爲你的證書是可信的但不確定Chrome,在Firefox中,你可以添加它作爲例外。 –

6

你的腳本只生成一個證書,自簽名證書。通常,自簽名證書稱爲根證書。這可以用作CA證書,但通常中間CA證書由Root私鑰創建和簽名。此中間CA證書隨後用於簽署服務器證書。所以,你有這樣的層次:

根 - > CA - >服務器

的CA和根證書可以進入受信任的證書列表。然後,信任該列表的瀏覽器也將信任由CA或Root實體簽署的任何證書。

你不必有這樣的層次......你可以使用根證書的CA,跳過中間證書。您也可以使用1個自簽名證書作爲根/服務器證書。請參閱article (Trusting self-signed certificates)

不過,假設你有這樣的層次,這裏有一些OpenSSL的命令產生必要的密鑰和證書:

# 1. Create Root private key 
openssl genrsa -out root.key 2048 

# 2. Create self-signed Root certificate 
openssl req -new -key root.key -x509 -out root.crt -days 5000 -sha256 

# 3. Create CA private key 
openssl genrsa -out ca.key 2048 

# 4. Create CA CSR 
openssl req -new -key ca.key -out ca.csr -days 5000 

# 5. Sign and create CA certificate 
openssl x509 -req -in ca.csr -CA root.crt -CAkey root.key -out ca.crt -set_serial 2 -days 5000 -sha256 

# 6. Create Server private key 
openssl genrsa -out server.key 2048 

# 7. Create Server CSR 
openssl req -new -key server.key -out server.csr -days 5000 

# 8. Sign and create Server certificate 
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -out server.crt -set_serial 3 -days 5000 -sha256 

更改鍵位,有效天#,序列號,並添加V3擴展爲你覺得合適。

還記得,不同的瀏覽器有自己信任的不同列表。 Chrome和IE使用Windows默認列表。 Firefox有自己的列表。

+0

非常感謝你的詳細腳本。我只需要確保一件事......在FQDN中提到「localhost」,事情就順利進行了! – Kashyap