1、检查 Nginx 是否支持 SSL 模块
 首先,检查当前安装的 Nginx 是否支持 SSL 模块。运行以下命令:
 nginx -V 2>&1 | grep -o with-http_ssl_module
如果输出为空,说明 Nginx 没有编译 SSL 模块。
 2. 重新编译 Nginx 以启用 SSL 模块
 
 如果你没有安装源代码,可以从 Nginx 官方网站下载源代码包并重新编译。
 下载 Nginx 源代码
 cd /usr/local/src
 wget http://nginx.org/download/nginx-1.21.3.tar.gz
 tar -zxvf nginx-1.21.3.tar.gz
 cd nginx-1.21.3
 安装依赖
 确保安装了必要的依赖项,包括 OpenSSL 和开发工具:
 sudo yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
 配置并编译 Nginx
 ./configure --with-http_ssl_module --prefix=/usr/local/nginx
 make
 sudo make install
3、秘钥证书文件放置路径:
 sudo mkdir -p /etc/nginx/ssl
 sudo cp star_baidu_com.crt /etc/nginx/ssl/
 sudo cp star_baidu_com.key /etc/nginx/ssl/
4、修改 /usr/local/nginx/conf/nginx.conf
在 http 块中添加或修改以下内容:
 http {
     # 其他配置...
#保留请求头里的字段下划线 因Nginx存在过滤下划线的问题
underscores in headers on;
server {
         listen 80;
         server_name www.baidu.com;
        # 重定向 HTTP 请求到 HTTPS
         return 301 https://$host$request_uri;
     }
    server {
         listen 443 ssl;
         server_name www.baidu.com;
        ssl_certificate /etc/nginx/ssl/star_baidu_com.crt;
         ssl_certificate_key /etc/nginx/ssl/star_baidu_com.key;
        ssl_protocols TLSv1.2 TLSv1.3;
         ssl_ciphers HIGH:!aNULL:!MD5;
location / {
        # 需要修改IP地址
             proxy_pass http://172.16.222.1222:8089;
             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;
         }
     }
 }
 5、测试 Nginx 配置
 
 在重新启动 Nginx 之前,先测试配置文件是否正确:
 sudo /usr/local/nginx/sbin/nginx -t
 6、重启 Nginx
 
 如果配置文件没有问题,重启 Nginx 以应用更改:
 sudo /usr/local/nginx/sbin/nginx -s reload
 7、验证 SSL 配置
 
 打开浏览器,访问 https://www.baidu.com,确保连接是安全的,并且没有 SSL 警告。
 8、注意事项
 
     确保防火墙允许 443 端口的流量。
     使用 iptables
     查看现有规则(可选)
     sudo iptables -L -n -v
     添加规则以允许443端口的流量:
     允许入站TCP流量(假设你使用的是IPv4):
     sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
     如果你还希望允许IPv6流量:
     sudo ip6tables -A INPUT -p tcp --dport 443 -j ACCEPT
     保存规则:
     对于基于Debian的系统(如Ubuntu),你可以使用iptables-save和iptables-restore:
    sudo sh -c "iptables-save > /etc/iptables/rules.v4"
     sudo sh -c "ip6tables-save > /etc/iptables/rules.v6"
     对于基于Red Hat的系统(如CentOS、Fedora),你可以使用service iptables save(这取决于你的系统配置):
     你需要确保 /etc/iptables/ 目录存在。如果目录不存在,你可以创建它:
     sudo mkdir -p /etc/iptables/
   一旦目录存在,你就可以再次尝试使用 iptables-save 命令来保存规则:
     sudo iptables-save > /etc/iptables/rules.v4
     sudo iptables-save > /etc/iptables/rules.v6
     
如果使用 Let's Encrypt 证书,建议使用 Certbot 工具自动管理证书的获取和续期。