配置Nginx自签名SSL证书,支持HTTPS

配置Nginx自签名SSL证书的流程

  • 生成一个SSL自签名证书
  • 客户端机器信任这个自签名证书
  • 修改RHEL服务器的Nginx配置
  • 在客户机用curl测试HTTPS

生成一个SSL自签名证书

在RHEL服务器上, 用openssl命令生成一个自签名证书

复制代码
openssl genrsa -out server.key 2048 #生成一个2048位的RSA私钥,保存到server.key
openssl req -x509 -new -nodes -key server.key -sha256 -days 3650 -out server.crt -subj "/C=CN/CN=www.petertest.com/O=MyRootCA" # 使用私钥server.key, 生成一个自签名的根证书server.crt, 有效期10年

注: CN=www.petertest.com需要换成你的服务器域名, 否则curl测试会报错

客户端机器信任这个自签名证书

将server.crt传到客户端Linux机器上。 在RHEL/Centos机器上, 需要把证书传到目录/etc/pki/ca-trust/source/anchors/,再用如下命令更新系统信任的CA证书列表

复制代码
update-ca-trust

修改RHEL服务器的Nginx配置

修改nginx.conf, 如下:

复制代码
    server {
        listen 443 ssl;
        server_name www.peter.com; # 设置域名

        access_log   access.log;
        include /etc/nginx/default.d/*.conf;

        ssl_certificate /server.crt; # 指定证书的绝对路径
        ssl_certificate_key /server.key; # 指定私钥的绝对路径

        location / {
            default_type text/html;
            return 200 '<h1>Welcome to Nginx</h1>';
        }
    }

再把证书文件server.crt和私钥文件server.key拷到服务器的根目录下

测试

在客户机用curl测试, 返回200 OK

复制代码
curl https://www.petertest.com:443 -i
HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Wed, 11 Dec 2024 14:02:13 GMT
Content-Type: text/html
Content-Length: 25
Connection: keep-alive

<h1>Welcome to Nginx</h1>

参考

https://cloud.tencent.com/developer/article/1743989

相关推荐
敲不响的键盘1 小时前
Nginx Location匹配与Proxy_pass匹配规则
运维·nginx
2501_9151063213 小时前
App HTTPS 抓包 工程化排查与工具组合实战
网络协议·ios·小程序·https·uni-app·php·iphone
努力进修15 小时前
跨地域传文件太麻烦?Nginx+cpolar 让本地服务直接公网访问
运维·nginx·cpolar
00后程序员张17 小时前
混淆 iOS 类名与变量名的实战指南,多工具组合把混淆做成工程能力(混淆 iOS 类名变量名/IPA 成品混淆Ipa/Guard CLI 实操)
android·ios·小程序·https·uni-app·iphone·webview
記億揺晃着的那天18 小时前
解密 HTTPS:从握手到安全通信
网络协议·安全·https·ssl证书
夜郎king19 小时前
UniHttp/Jsoup Https SSL证书验证失败:SunCertPathBuilderException解决方案详解
https·ssl·jsoup访问https·unihttp访问https
rit84324991 天前
在Ubuntu上配置Nginx实现开机自启功能
数据库·nginx·ubuntu
一勺菠萝丶1 天前
芋道后端部署后总自己挂?从 Nginx 报错到 OOM Kill 的完整排查与修复(2核2G 服务器实战)
服务器·chrome·nginx
才聚PMP1 天前
关于开启NPDP项目2025年第二次续证工作的通知
网络协议·https·ssl
神奇侠20241 天前
基于spring-boot-admin实现对应用、数据库、nginx等监控
java·数据库·nginx