nginx添加https支持

本文档详细介绍了如何在Nginx服务器上配置SSL证书的过程,包括生成服务器私钥、创建签名请求证书(CSR)、生成自签名证书,并最终完成Nginx配置以启用HTTPS服务。

生成证书

  1. 进入nginx配置目录

    $ cd /etc/nginx
    
  2. 创建服务器私钥,命令会让你输入一个口令:

     $ sudo openssl genrsa -des3 -out server.key 1024
    
  3. 创建签名请求的证书(CSR)

     $ sudo openssl req -new -key server.key -out server.csr
    
  4. 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令

     $ sudo  cp server.key server.key.org
     $ sudo openssl rsa -in server.key.org -out server.key
    
  5. 最后标记证书使用上述私钥和CSR

     $ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    

添加证书到ngix

在我前一篇博客的jenkin.conf修改如下:

server {
    listen 443;
    # listen 80;
    server_name laputa.imwork.net;
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    ssl on;
    ssl_certificate /etc/nginx/server.crt;
    ssl_certificate_key /etc/nginx/server.key;

    location / {
            try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location =/50x.html {
            root /var/www/html;
    }

    location ~ \.php$ {
    #       try_files $uri =404;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}

转载于:https://my.oschina.net/purplespace/blog/1575554

### 配置 Nginx 支持 HTTPS 的步骤 在 Linux 系统中配置 Nginx支持 HTTPS,需要完成以下任务。以下是详细的说明和操作方法: #### 1. 安装必要的软件库 在安装 Nginx 之前,需要确保系统已经安装了必要的依赖库,包括 GCC、openssl-devel、pcre-devel 和 zlib-devel。这些库是编译和运行 Nginx 所必需的[^1]。 ```bash sudo yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y ``` #### 2. 下载并解压 Nginx 源码包 从 Nginx 官方网站下载最新的稳定版本源码包,并进行解压[^3]。 ```bash wget http://nginx.org/download/nginx-1.21.6.tar.gz tar -zvxf nginx-1.21.6.tar.gz cd nginx-1.21.6 ``` #### 3. 配置编译选项 使用 `./configure` 命令配置 Nginx 的编译选项。为了支持 HTTPS,需要启用 `--with-http_ssl_module` 参数[^3]。 ```bash ./configure --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_stub_status_module ``` #### 4. 编译并安装 Nginx 完成配置后,执行 `make` 和 `make install` 命令来编译并安装 Nginx。 ```bash make sudo make install ``` #### 5. 获取 SSL 证书和密钥 配置 HTTPS 服务器时,需要准备 SSL 证书和对应的私钥文件。可以通过权威证书机构申请正式证书,或者生成自签名证书用于测试环境[^1]。 生成自签名证书的命令如下: ```bash sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /usr/local/nginx/cert/nginx.key \ -out /usr/local/nginx/cert/nginx.crt ``` #### 6. 修改 Nginx 配置文件 编辑 Nginx 的主配置文件 `/usr/local/nginx/conf/nginx.conf`,添加或修改 HTTPS 相关的配置项[^4]。 ```nginx server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /usr/local/nginx/cert/nginx.crt; ssl_certificate_key /usr/local/nginx/cert/nginx.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root html; index index.html index.htm; } } ``` #### 7. 启动 Nginx 并测试 启动 Nginx 服务,并通过浏览器访问 `https://yourdomain.com` 来验证配置是否成功[^2]。 ```bash sudo /usr/local/nginx/sbin/nginx ``` #### 8. 配置防火墙规则 确保防火墙允许 HTTP (80) 和 HTTPS (443) 流量通过。可以使用以下命令开放端口。 ```bash sudo ufw allow 80 sudo ufw allow 443 ``` --- ### 注意事项 - 如果需要将所有 HTTP 请求重定向到 HTTPS,可以在 Nginx 配置文件中添加一个监听 80 端口的 server 块,并使用 `return 301` 将请求重定向到 HTTPS 地址[^4]。 - 在生产环境中,建议使用由受信任的 CA(证书颁发机构)签发的 SSL 证书,而不是自签名证书。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值