在当今互联网环境中,HTTPS已成为网站安全的基本要求。虽然正规CA签发的证书需要付费,但在内网测试或开发环境中,我们可以使用自签名证书来模拟HTTPS。本文将详细介绍如何在Linux系统下使用OpenSSL生成自签名证书,并配置Nginx实现HTTPS访问。通过本教程,你将掌握Linux OpenSSL生成证书、Nginx HTTPS配置以及SSL证书生成的全流程。
在开始之前,确保你的Linux系统已安装Nginx和OpenSSL。以Ubuntu为例,执行以下命令:
sudo apt updatesudo apt install nginx openssl -y 首先,创建一个用于存放证书的目录,例如/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
执行以下命令,使用私钥和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的配置文件(例如/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://你的域名或IP,你会看到安全警告,因为证书是自签名的,不被浏览器信任。点击“高级”或“继续前往”即可访问。这表明Nginx HTTPS配置成功。
为了消除安全警告,可以将自签名证书导入浏览器的受信任根证书颁发机构。具体步骤因浏览器和操作系统而异,这里不再赘述。对于内网环境,也可以使用内部CA签发证书。
通过以上步骤,我们完成了自签名证书的生成和Nginx的HTTPS配置。关键点在于理解Linux OpenSSL命令的使用,以及Nginx HTTPS配置中证书路径的正确指定。希望这篇自签名证书教程能帮助你快速搭建HTTPS测试环境。如果你在生产环境中使用,建议购买受信任的CA证书。
关键词:自签名证书、Nginx HTTPS配置、Linux OpenSSL、SSL证书生成
本文由主机测评网于2026-03-02发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260328253.html