nginx配置https的方法示例(免费证书)

  

下面是详细的“nginx配置https的方法示例(免费证书)”攻略。

准备工作

在配置HTTPS之前,需要准备以下材料:

  1. 一个域名
  2. 一台服务器(可以为Linux或Windows服务器)
  3. 一个电子邮件账户(用于向证书颁发机构CA请求证书)

第一步:申请证书

我们可以免费向Let’s Encrypt证书颁发机构申请证书,以获得可靠的HTTPS证书。

  1. 安装certbot工具(为方便使用,请安装加入了Nginx插件的版本)
$ sudo apt-get update
$ sudo apt-get install certbot python-certbot-nginx -y
  1. 申请证书(以example.com为例)
$ sudo certbot certonly --nginx -d example.com

执行以上命令后,请按照提示输入您的电子邮件地址和同意条款,证书生成后默认保存在/etc/letsencrypt/live/example.com路径下。

第二步:配置Nginx

  1. 编写HTTPS服务器块配置文件example.com.conf
server {
    listen 443 ssl;
    server_name example.com;
    root /wwwroot/example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_session_timeout 5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:\
            ECDHE-RSA-AES128-GCM-SHA256:\
            ECDHE-RSA-AES256-SHA384:\
            ECDHE-RSA-AES128-SHA256:\
            ECDHE-RSA-AES256-SHA:\
            ECDHE-RSA-AES128-SHA:\
            RSA-AES256-GCM-SHA384:\
            RSA-AES128-GCM-SHA256:\
            RSA-AES256-SHA256:\
            RSA-AES128-SHA256:\
            RSA-AES256-SHA:\
            RSA-AES128-SHA;
    ssl_prefer_server_ciphers on;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

    location / {
        index index.html;
    }
}
  1. 在原来的HTTP块中,添加重定向到HTTPS服务器块的配置
server{
    listen 80;
    server_name example.com
    root /wwwroot/example.com;

    location / {
        index index.html;
        return 301 https://$server_name$request_uri;
    }
}

完成

配置完成后,您需要重启Nginx服务,运行以下命令:

$ sudo systemctl restart nginx

这样,您的网站就可以使用HTTPS协议进行访问了。

总结

这就是配置Nginx使用HTTPS的完整攻略,我们可以免费申请Let's Encrypt证书,并使用Nginx进行配置。希望这篇攻略对您有所帮助!

相关文章