在Linux配置NGINX的证书

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 工具自动管理证书的获取和续期。
 

增加新的域名可以增加

    server {
        listen 444 ssl;
        server_name www.kexue.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:8001;
            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;
        }
    }
————————————————

 这里相应的开放444 端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慧香一格

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值