匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

「Linux服务器搭建」:用Nginx和Let's Encrypt构建一个HTTPS服务器

Linux服务器搭建:用Nginx和Let’s Encrypt构建一个HTTPS服务器

背景

在互联网时代,网站访问不仅需要稳定的服务器,同时还需要保证数据的传输安全,尤其是涉及到用户隐私信息的网站更是需要使用HTTPS协议,以保证用户的隐私和数据安全。Nginx是目前广泛使用的Web服务器之一,它支持HTTPS协议,并且可以使用Let’s Encrypt免费的SSL证书来加密传输数据,本文将介绍如何在Linux上使用Nginx和Let’s Encrypt构建一个HTTPS服务器。

步骤

前提条件

- 确保你的服务器已经安装了Nginx
- 确保你的服务器上已经有一个域名,并且域名解析已经正确配置

步骤一:安装Certbot

Certbot是一个用于自动化安装和更新Let’s Encrypt SSL证书的工具,可以使用以下命令安装Certbot工具:

```
sudo apt-get update
sudo apt-get install certbot
```

步骤二:配置Nginx

打开Nginx的配置文件,通常位于/etc/nginx/sites-available/default,或者/etc/nginx/nginx.conf,添加以下内容,以实现HTTP重定向到HTTPS:

```
server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}
```

在同一个配置文件中添加以下内容,以实现HTTPS协议的支持:

```
server {
    listen 443 ssl;
    server_name your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

    location / {
        proxy_pass http://localhost:3000;
    }
}
```

其中,ssl_certificate和ssl_certificate_key分别为Let’s Encrypt证书的公钥和私钥文件路径,ssl_protocols、ssl_prefer_server_ciphers、ssl_ciphers用于设置加密算法,location用于配置反向代理。

步骤三:获取Let’s Encrypt SSL证书

运行以下命令,获取Let’s Encrypt SSL证书:

```
sudo certbot certonly --webroot -w /var/www/html -d your-domain.com
```

其中,-w表示网站根目录,-d表示你要申请证书的域名。

Certbot会提示你输入一个有效的邮箱地址,以便在证书到期或者出现问题时通知你。

Certbot会自动验证你的域名和网站根目录是否匹配,成功后,它将Let’s Encrypt SSL证书下载到/etc/letsencrypt/live/your-domain.com目录下。

步骤四:更新Nginx配置

在上一步中获取到的Let’s Encrypt证书需要在Nginx配置文件中更新,打开配置文件,修改ssl_certificate和ssl_certificate_key的值,例如:

```
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
```

修改完配置文件后,重新加载Nginx:

```
sudo systemctl reload nginx
```

现在,你的网站已经可以使用HTTPS协议访问了。

总结

本文介绍了如何使用Nginx和Let’s Encrypt构建一个HTTPS服务器,其主要步骤包括安装Certbot,配置Nginx,获取Let’s Encrypt SSL证书,更新Nginx配置。在网络安全越来越重要的今天,使用HTTPS协议已经成为了基本的网站安全要求,希望本文能够对大家有所帮助。