在Linux上使用OpenSSL配置HTTP嚴格傳輸安全(HSTS)涉及幾個步驟。以下是一個基本的指南:
首先,確保你的系統上已經安裝了OpenSSL。大多數Linux發行版默認已經安裝了OpenSSL,但如果沒有,可以使用包管理器進行安裝。
sudo apt-get update
sudo apt-get install openssl
為了測試HSTS,你可以生成一個自簽名證書。請注意,自簽名證書不會被瀏覽器信任,僅用于測試目的。
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
按照提示輸入所需的信息,如國家、組織名稱等。
假設你使用的是Apache或Nginx作為Web服務器,下面是如何在這兩種服務器上配置HSTS。
編輯Apache配置文件(通常是/etc/apache2/sites-available/your-site.conf),添加以下內容:
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</VirtualHost>
確保將/path/to/cert.pem和/path/to/key.pem替換為你的證書和密鑰的實際路徑。
然后啟用站點并重啟Apache:
sudo a2ensite your-site.conf
sudo systemctl restart apache2
編輯Nginx配置文件(通常是/etc/nginx/sites-available/your-site),添加以下內容:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
root /var/www/html;
index index.html index.htm;
}
確保將/path/to/cert.pem和/path/to/key.pem替換為你的證書和密鑰的實際路徑。
然后啟用站點并重啟Nginx:
sudo ln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
你可以使用瀏覽器開發者工具或在線工具(如SSL Labs)來驗證HSTS配置是否正確。
max-age過期。includeSubDomains選項將HSTS策略應用于所有子域名。preload選項允許你的域名被添加到瀏覽器的預加載列表中,這樣瀏覽器在首次訪問時就會強制使用HTTPS。通過以上步驟,你應該能夠在Linux上使用OpenSSL配置HSTS。