当前位置:首页 > 系统教程 > 正文

Linux系统下Nginx自制HTTPS证书:从生成到配置的完整指南

Linux系统下Nginx自制HTTPS证书:从生成到配置的完整指南

手把手教你生成自签名证书并配置Nginx实现HTTPS访问(适合小白)

在当今互联网环境中,HTTPS已成为网站安全的基本要求。虽然正规CA签发的证书需要付费,但在内网测试或开发环境中,我们可以使用自签名证书来模拟HTTPS。本文将详细介绍如何在Linux系统下使用OpenSSL生成自签名证书,并配置Nginx实现HTTPS访问。通过本教程,你将掌握Linux OpenSSL生成证书、Nginx HTTPS配置以及SSL证书生成的全流程。

准备工作:安装Nginx和OpenSSL

在开始之前,确保你的Linux系统已安装Nginx和OpenSSL。以Ubuntu为例,执行以下命令:

sudo apt updatesudo apt install nginx openssl -y

第一步:生成私钥和证书签名请求(CSR)

首先,创建一个用于存放证书的目录,例如/etc/nginx/ssl,并进入该目录:

sudo mkdir -p /etc/nginx/sslcd /etc/nginx/ssl

然后生成2048位的RSA私钥:

sudo openssl genrsa -out example.com.key 2048

接下来,使用该私钥生成证书签名请求(CSR)。在生成过程中,需要填写一些证书信息,如国家、省份、城市、组织名称等。特别注意通用名称(Common Name)必须填写你的域名或IP地址:

sudo openssl req -new -key example.com.key -out example.com.csr
Linux系统下Nginx自制HTTPS证书:从生成到配置的完整指南 自签名证书  Nginx HTTPS配置 Linux OpenSSL SSL证书生成 第1张

第二步:生成自签名证书(有效期365天)

执行以下命令,使用私钥和CSR生成自签名证书,并指定有效期:

sudo openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt

至此,我们得到了三个文件:私钥example.com.key、CSR文件example.com.csr(可删除)和自签名证书example.com.crt。这步完成了SSL证书生成的核心操作。

第三步:配置Nginx使用HTTPS证书

编辑Nginx的配置文件(例如/etc/nginx/sites-available/default),添加一个监听443端口的server块,并指定证书和私钥路径:

server {    listen 443 ssl;    server_name example.com;  # 修改为你的域名或IP    ssl_certificate /etc/nginx/ssl/example.com.crt;    ssl_certificate_key /etc/nginx/ssl/example.com.key;    root /var/www/html;    index index.html index.htm;    location / {        try_files $uri $uri/ =404;    }}

如果需要同时处理HTTP重定向到HTTPS,可以在server块中配置:

server {    listen 80;    server_name example.com;    return 301 https://$host$request_uri;}

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

sudo nginx -t

如果没有错误,重新加载Nginx使配置生效:

sudo systemctl reload nginx

第四步:验证HTTPS配置

现在,通过浏览器访问https://你的域名或IP,你会看到安全警告,因为证书是自签名的,不被浏览器信任。点击“高级”或“继续前往”即可访问。这表明Nginx HTTPS配置成功。

第五步:让浏览器信任自签名证书(可选)

为了消除安全警告,可以将自签名证书导入浏览器的受信任根证书颁发机构。具体步骤因浏览器和操作系统而异,这里不再赘述。对于内网环境,也可以使用内部CA签发证书。

总结

通过以上步骤,我们完成了自签名证书的生成和Nginx的HTTPS配置。关键点在于理解Linux OpenSSL命令的使用,以及Nginx HTTPS配置中证书路径的正确指定。希望这篇自签名证书教程能帮助你快速搭建HTTPS测试环境。如果你在生产环境中使用,建议购买受信任的CA证书。

关键词:自签名证书、Nginx HTTPS配置、Linux OpenSSL、SSL证书生成