Proxmox 服務器的自簽名證書的SSL設定 git
在使用Proxmox服務器時,會使用SSL訪問它的WEB管理平臺。 shell
因爲默認的安裝中SSL證書沒有簽署,因此瀏覽器總是會彈出證書錯誤,是否繼續之類的錯誤信息,非常礙眼。 apache
爲了在必定程度上避免這種現象,本文使用自簽名的證書來配置Promox的HTTPS。 瀏覽器
即便點了「仍然繼續」,https前面仍是會出現下面的小紅叉叉,難看的很: 安全
概念 服務器
關於自簽名的證書,囉嗦幾句。 網絡
常規的證書(那些NB的CA機構頒發的證書),容許使用該證書的服務器向用戶說: 測試
你應該信任我,由於你信任的機構(NB的CA機構)是這麼說的 ui
而自簽名的證書就比較無恥了,它容許使用該證書的服務器對用戶說: spa
你應該信任我,由於這是我說的
咱們訪問各類網銀是,必須都是HTTPS(若是你不是,那你悲劇了),而他們的證書都是常規的證書。
而我天朝的12306,好像是使用自簽名的證書(箇中緣由,you know…)。
前提
首先已經安裝好了Proxmox,並且網絡,IP都已經配置好了。
假設,Proxmox服務器的IP是: 10.194.153.6
爲了簡單起見,Proxmox服務器沒有綁定域名,老是以IP訪問。
1 生成證書
本例中的證書是自我簽署的證書。在默認的狀態下,自我簽署的證書在瀏覽器裏會彈出警告,
而不是討人厭的錯誤提示。
若是吧自我簽署的證書事前安裝好的話,就能夠正常的使用了。
所以,若是隻是(公司,實驗室,局域網)內部使用的話,使用自我簽署的證書是沒有問題的。
若是須要開放給外部訪問,最好仍是到CA認證機構去購買和申請正規的證書吧(不過聽說很貴)。
閒話少敘,開始幹活
1.1 生成私鑰
~# cd /etc/ssl/certs /etc/ssl/certs# openssl genrsa -des3 -out server.key 1024 Generating RSA private key, 1024 bit long modulus .....................................................................++++++ .......++++++ e is 65537 (0x10001) Enter pass phrase for server.key: # 輸入pass phrase Verifying - Enter pass phrase for server.key: # 再次輸入
1.2 從私鑰中刪除pass phrase
/etc/ssl/certs# openssl rsa -in server.key -out server.key Enter pass phrase for server.key:# 輸入剛纔輸入的pass phrase writing RSA key
1.3 生成證書
/etc/ssl/certs# openssl req -new -days 3650 -key server.key -out server.csr 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]:LN #區域代碼,也就是咱們所謂的省 Locality Name (eg, city) []:DL #城市 Organization Name (eg, company) [Internet Widgits Pty Ltd]: TESTWork #公司名稱,隨便填 Organizational Unit Name (eg, section) []:VM Manager #部門名稱,隨便寫 Common Name (eg, YOUR name) []:10.193.153.6 #服務器全名(FQDN),本例中由於都使用的是IP,因此直接把IP寫上了。 #這是證書生成過程當中最重要的一步,這裏填寫的Common Name必需要保證與apache中配置的Server name一致, #不然生成後的證書仍是很差用。 #若是你使用的Proxmox已經在DNS服務器裏面綁定了域名,好比:proxmox.abc.com #並且在apache配置中,虛擬主機的Server Name也是:proxmox.abc.com #那末,這一步,就必須填寫:proxmox.abc.com,這樣生成的證書纔好使。 Email Address []:admin@10.194.153.6 #管理員郵件地址,隨便填。 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: #這裏不輸入也能夠,直接回車 An optional company name []: #這裏不輸入也能夠,直接回車
1.4 建立自簽署證書
/etc/ssl/certs# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 Signature ok subject=/C=CN/ST=LN/L=DL/O=PSDCD/OU=10.194.153.6/CN=10.194.153.6 Getting Private key
1.5 修改證書和密鑰的權限
/etc/ssl/certs# chmod 400 server.*
2 SSL設置
Promox的apache配置在下面的位置:
/etc/apache2/sites-enabled/pve.conf
/etc/apache2/sites-enabled/pve-redirect.conf
修改這兩個個文件:
2.1 確認Server Name是否和剛次生成證書是輸入的Common Name一致:
不一致的狀況下,有兩條道:從新生成證書並簽署,或者修改此處
ServerName 10.194.153.6
2.2 配置剛纔生成的證書和公鑰到apache中
<VirtualHost *:8006> SSLEngine on SSLProtocol all -SSLv2 # 爲了保險起見,先註釋掉默認的SSL配置 #SSLCertificateFile /etc/pve/local/pve-ssl.pem #這是默認的配置 #SSLCertificateKeyFile /etc/pve/local/pve-ssl.key #這是默認的配置 # 加入新的配置 SSLCertificateFile /etc/ssl/certs/server.crt #這是新的配置 SSLCertificateKeyFile /etc/ssl/certs/server.key #這是新的配置 … 此處省略N個字…
2.3 重啓apache
/etc/apache2/sites-enabled# apache2ctl restart
3 測試(IE這貨就不測了,Proxmox不支持IE,贊)
【Firefox】
打開promox的WEB管理平臺,給出了警告。點擊「添加例外」。
點擊確認「安全例外」:
終於看到了久違的登錄畫面,注意,地址欄裏面的https前再也不會顯示大紅叉,而是正常的一個鎖的樣子了,說明自簽名證書成功了。
【Chrome的結果】