温馨提示×

ubuntu openssl如何使用HSTS

小樊
41
2025-10-19 01:21:06
栏目: 云计算

在Ubuntu上使用HSTS(HTTP Strict Transport Security)可以增强网站的安全性,确保浏览器始终通过HTTPS访问你的网站,而不是HTTP。以下是如何在Ubuntu上配置HSTS的步骤:

1. 安装和配置Nginx或Apache

Nginx

  1. 安装Nginx

    sudo apt update
    sudo apt install nginx
    
  2. 编辑Nginx配置文件: 打开你的Nginx配置文件,通常位于 /etc/nginx/sites-available/yourdomain.com

    sudo nano /etc/nginx/sites-available/yourdomain.com
    
  3. 添加HSTS头: 在 server 块中添加以下内容:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
    
        location / {
            return 301 https://$host$request_uri;
        }
    }
    
    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate /etc/ssl/certs/yourdomain.com.crt;
        ssl_certificate_key /etc/ssl/private/yourdomain.com.key;
    
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    
        location / {
            root /var/www/html;
            index index.html index.htm;
        }
    }
    
  4. 启用配置: 创建一个符号链接以启用该配置:

    sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
    
  5. 测试配置并重启Nginx

    sudo nginx -t
    sudo systemctl restart nginx
    

Apache

  1. 安装Apache

    sudo apt update
    sudo apt install apache2
    
  2. 启用SSL模块

    sudo a2enmod ssl
    
  3. 获取SSL证书: 你可以使用Let’s Encrypt免费获取SSL证书:

    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    
  4. 编辑Apache配置文件: 打开你的Apache配置文件,通常位于 /etc/apache2/sites-available/yourdomain.com.conf

    sudo nano /etc/apache2/sites-available/yourdomain.com.conf
    
  5. 添加HSTS头: 在 <VirtualHost *:443> 块中添加以下内容:

    <VirtualHost *:443>
        ServerName yourdomain.com
        ServerAlias www.yourdomain.com
    
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
    
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    
        DocumentRoot /var/www/html
    </VirtualHost>
    
  6. 启用配置并重启Apache

    sudo a2ensite yourdomain.com.conf
    sudo systemctl restart apache2
    

2. 验证HSTS配置

你可以使用浏览器开发者工具或在线工具(如 SSL Labs)来验证HSTS配置是否正确。

注意事项

  • max-age:HSTS头的 max-age 参数指定了HSTS策略的有效期(以秒为单位)。建议设置为一年(31536000秒)。
  • includeSubDomains:如果你希望所有子域名也应用HSTS策略,请添加 includeSubDomains 参数。
  • 预加载列表:如果你希望将你的域名添加到浏览器的预加载HSTS列表中,你需要将你的域名提交给 HSTS Preload Submission Form

通过以上步骤,你可以在Ubuntu上成功配置HSTS,提高网站的安全性。

0