首页 / 大硬盘VPS推荐 / 正文
Nginx配置证书实现HTTPS安全访问,Nginx配置证书和域名

Time:2025年01月07日 Read:6 评论:42 作者:y21dr45

在当今互联网环境中,HTTPS已经成为确保网站通信安全的标准,本文将详细介绍如何在Nginx服务器上配置SSL证书,以实现HTTPS安全访问。

Nginx配置证书实现HTTPS安全访问,Nginx配置证书和域名

前置准备

1、服务器:一台运行Nginx的服务器(例如阿里云、AWS、DigitalOcean等云服务器)。

2、域名:一个已指向服务器公网IP的域名(例如gitea.example.com)。

3、服务器访问权限:确保你有服务器的root权限或sudo用户权限。

4、安装Nginx:如果尚未安装Nginx,请参考相关文章进行安装。

一、生成密钥和证书签名请求(CSR)

使用OpenSSL生成一个私钥(通常命名为private.key)和一个证书签名请求(CSR,通常命名为domain.csr)。

生成私钥
openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048
生成CSR
openssl req -new -key private.key -out domain.csr \
-subj "/C=你的国家/ST=你的省份/L=你的城市/O=你的组织/OU=你的单位/CN=你的域名"

在生成CSR的过程中,你需要填写一些信息,如国家(C)、州/省(ST)、城市(L)、组织(O)、组织单位(OU)和通用名称(CN,即你的域名)。

二、获取SSL/TLS证书

你可以从证书颁发机构(CA)获取证书,或者使用Let's Encrypt免费获取证书,以下是使用Let's Encrypt的方法:

安装Certbot和生成SSL证书

Certbot是Let's Encrypt提供的一个工具,用于自动生成和管理SSL证书。

安装Certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx
使用Certbot获取证书并自动配置Nginx
sudo certbot --nginx -d yourdomain.com

--nginx参数表示告诉Certbot自动配置Nginx,-d参数指定需要申请证书的域名,Certbot会自动处理证书获取和Nginx配置更新。

验证证书安装

Certbot完成后,你可以运行以下命令检查证书:

sudo certbot certificates

这将显示已安装证书的信息,确保域名和证书路径正确无误。

三、配置Nginx使用HTTPS

Certbot在生成证书时会自动修改Nginx配置,但你可以手动优化和调整配置以满足安全性和性能的需求,以下是一个标准的HTTPS配置示例。

编辑Nginx配置文件

假设你的网站配置文件在/etc/nginx/sites-available/gitea中,打开该文件进行编辑:

server {
    listen 443 ssl http2;  # 启用 HTTP/2 支持
    server_name gitea.example.com;
    # SSL 配置 - Certbot 自动生成的配置
    ssl_certificate /etc/letsencrypt/live/gitea.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/gitea.example.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;  # Certbot 的自动配置文件
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    # HSTS(HTTP Strict Transport Security)配置
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    # 反向代理设置(代理到本地服务或其他端口)
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 超时设置
        proxy_connect_timeout 60s;
        proxy_read_timeout 60s;
        proxy_send_timeout 60s;
    }
}
HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name gitea.example.com;
    location / {
        return 301 https://$host$request_uri;
    }
}

配置说明

1、HTTP重定向:80端口的HTTP请求将被自动重定向到HTTPS。

2、SSL证书路径ssl_certificatessl_certificate_key路径指向Certbot生成的证书。

3、HSTS配置add_header Strict-Transport-Security可以强制客户端在未来仅通过HTTPS访问,防止降级攻击。

4、反向代理设置:将请求代理到本地服务或其他端口。

四、测试和重启Nginx

在保存并关闭配置文件后,测试Nginx配置是否正确:

sudo nginx -t

如果配置正确,重新加载Nginx配置:

sudo systemctl reload nginx

五、验证HTTPS连接

打开浏览器,访问https://yourdomain.com,你应该看到一个绿色的锁图标,表示连接是安全的。

注意事项

1、证书续期:确保定期检查并续订证书,特别是对于从CA获取的证书,以避免证书过期导致的服务中断。

2、备份:定期备份你的私钥和证书文件。

3、安全性:确保你的Nginx配置文件和服务器具有适当的权限和安全性设置。

通过以上步骤,你应该能够在Nginx上成功部署HTTPS证书,确保网站通信的安全性。

标签: nginx配置证书 
排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1