【Nginx】使用自生成证书配置nginx代理https

使用Nginx代理HTTPS请求并使用自签名证书,可以按照以下步骤进行配置:

  1. 生成自签名证书:

    • 打开终端或命令提示符,并导航到Nginx配置文件所在的目录。
    • 运行以下命令生成自签名证书和私钥:

    |---|------------------------------------------------------------------------------------|
    | | openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl.key -out ssl.crt |

    • 根据提示输入证书的相关信息,例如国家、省份、城市、组织等。
  2. 配置Nginx代理:

    • 打开Nginx配置文件(通常为nginx.conf)。
    • http块中添加一个新的server块,用于代理HTTPS请求。示例配置如下:

    |---|-----------------------------------------------------------------|
    | | nginx`server { |
    | | listen 80; |
    | | server_name example.com; |
    | | |
    | | location / { |
    | | proxy_pass http://backend_server_address; |
    | | proxy_set_header Host $host; |
    | | proxy_set_header X-Real-IP $remote_addr; |
    | | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
    | | } |
    | | } |
    | | |
    | | server { |
    | | listen 443 ssl; |
    | | server_name example.com; |
    | | |
    | | ssl_certificate ssl.crt; |
    | | ssl_certificate_key ssl.key; |
    | | ssl_protocols TLSv1 TLSv1.1 TLSv1.2; |
    | | ssl_ciphers 'HIGH:!aNULL:!MD5:!kEDH'; |
    | | ssl_session_cache shared:SSL:10m; |
    | | ssl_session_timeout 10m; |
    | | |
    | | location / { |
    | | proxy_pass http://backend_server_address; |
    | | proxy_set_header Host $host; |
    | | proxy_set_header X-Real-IP $remote_addr; |
    | | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
    | | } |
    | | ``}``` |

    • example.com替换为你的域名,backend_server_address替换为后端服务器的地址。确保将生成的证书文件(ssl.crtssl.key)的路径替换为正确的路径。
  3. 保存并关闭配置文件。

  4. 检查Nginx配置是否正确:运行以下命令,查看Nginx的错误日志中是否有任何错误:

|---|--------------------------------------------------------------------------------------------------|
| | nginx -t``` |
| | 5. 重启Nginx服务,使更改生效: |
| | ```````arduino | | |service nginx restart``` ```` |
| | 或者根据你所使用的系统,使用相应的命令重启Nginx服务。例如,在Ubuntu上可以使用`sudo service nginx restart`。 |
| | `6. 确保域名解析和证书的一致性:确保你的域名解析正确,并且指向代理服务器的IP地址。同时,确保在浏览器中访问时使用的是正确的域名,而不是IP地址。证书只有在正确使用域名访问时才会被信任。` |

相关推荐
Linux运维技术栈1 小时前
Ansible(自动化运维)环境搭建及ansible-vault加密配置
运维·自动化·ansible
Bessssss2 小时前
centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
linux·运维·centos
苹果醋33 小时前
Golang的文件加密工具
运维·vue.js·spring boot·nginx·课程设计
jwensh3 小时前
【Jenkins】Declarative和Scripted两种脚本模式有什么具体的区别
运维·前端·jenkins
大熊程序猿4 小时前
xxl-job docker 安装
运维·docker·容器
董健正4 小时前
centos制作离线安装包
linux·运维·centos
咏颜5 小时前
Ubuntu离线安装Docker容器
linux·运维·服务器·经验分享·ubuntu·docker
DexterLien6 小时前
Debian 12 安装配置 fail2ban 保护 SSH 访问
运维·debian·ssh·fail2ban
娶不到胡一菲的汪大东6 小时前
Shell脚本
linux·运维·ubuntu
xserver26 小时前
ensp 基于静态NAT发布公司网站服务器,
运维·服务器