在 Ubuntu 伺服器上保存 SSL 證書和私鑰的最佳位置?
在 Ubuntu 上,用於簽署證書(供 nginx 使用)的私鑰的最佳位置似乎是
/etc/ssl/private/
這個答案補充說證書應該進入,
/etc/ssl/certs/
但這似乎是一個不安全的地方。.crt
文件需要保持安全還是被認為是公開的?
.crt 文件被發送到所有連接的地方;它是公開的。(
chown root:root
和chmod 644
)添加到私鑰位置;確保你妥善保護它,並把它放在那裡。(
chown root:ssl-cert
和chmod 640
)
只要您正確保護您的私鑰文件,您將它們放在哪裡並不重要。公共證書是公開的;不需要保護 - 伺服器權限或其他。
為了擴展答案,我不使用預設位置
/etc/ssl
。
由於備份和其他原因,我更容易將所有我的東西放在一個單獨的區域中。對於 Apache SSL,我將我的保留
/etc/apache2/ssl/private
在/etc/apache2
.範例設置
*這篇文章面向 Ubuntu (Debian) + Apache,但應該適用於大多數係統。
只需在給定的配置(apache/nginx/etc)中應用權限並更新位置/路徑。*
此答案還假設您沒有使用 LetsEncrypt/Certbot 或某些自動 SSL 服務。您已購買或創建 SSL 證書並已獲取文件包。
如果 SSL密鑰文件得到正確保護(目錄和文件),你會沒事的。注意筆記!
創建目錄:
sudo mkdir /etc/apache2/ssl sudo mkdir /etc/apache2/ssl/private sudo chmod 755 /etc/apache2/ssl sudo chmod 710 /etc/apache2/ssl/private
注意:在 Ubuntu 下
chmod 710
支持組。ssl-cert
(見評論)
設置權限也可以正常工作700
。/etc/apache2/ssl/private
放置 SSL 文件:
將公共SSL 證書和中間證書放入:(
/etc/apache2/ssl
這些是*.crt
文件,通常)將相應的私有SSL 密鑰放入:(
/etc/apache2/ssl/private
這些是*.key
文件,或者沒有副檔名,通常)注意:LetsEncrypt/Certbot 對所有 SSL 文件(公共、中間鍊和私有)使用“.pem”副檔名。但是,您不需要移動(或保護)這些文件。它們已經到位並受到保護。只需在您的 Apache ‘.conf’ 中直接呼叫它們即可。
集所有者:
注意 - 如果您沒有ssl-cert組,請跳過第二行:
sudo chown -R root:root /etc/apache2/ssl/ sudo chown -R root:ssl-cert /etc/apache2/ssl/private/
設置權限:
公共證書
sudo chmod 644 /etc/apache2/ssl/*.crt
私鑰
sudo chmod 640 /etc/apache2/ssl/private/*.key
注意:
由於 Ubuntu ssl-cert 組,私鑰的組權限設置為 READ (640)。使用“600”(僅限所有者控制)是私鑰的正常權限,也可以正常工作。啟用 Apache SSL 模組
sudo a2enmod ssl
編輯任何 Apache 站點文件並啟用
(見最後一段)*
sudo nano /etc/apache/sites-available/mysiteexample-ssl.conf sudo a2ensite mysiteexample-ssl # ^^^^^^^^^^^^^^^^^ <-Substitute your ".conf" filename(s)
重啟 Apache2 服務
sudo service apache2 restart
或者
sudo systemctl restart apache2.service
完畢。測試您的新 SSL 站點。
- 這再次超出了問題範圍,但您可以複製預設的 Apache SSL 站點配置文件
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf
( . 它通常指向自簽名 SSL 證書+密鑰(snakeoil)、CA 捆綁包以及用於給定 SSL 站點的通用指令。複製後,只需編輯新的 .conf 文件並根據需要使用上面的新資訊/路徑添加/刪除/更新它,然後執行
sudo a2ensite mysiteexample-ssl
以啟用它。重新載入/重新啟動 apache2。測試。