Nginx+Https配置

TLS或传输层安全( transport layer security),它的前身是SSL(安全套接字层secure sockets layer),是Web协议用来包裹在一个受保护,加密封装正常通道。
采用这种技术,服务器和客户端之间可以安全地进行交互,而不用担心消息将被拦截和读取。证书系统帮助用户在核实它们与连接站点的身份。
步骤1:Create the SSL Certificate

sudo mkdir /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

创建了有效期100年,加密强度为RSA2048的SSL密钥key和X509证书文件。
参数说明:
req: 配置参数-x509指定使用 X.509证书签名请求管理(certificate signing request (CSR))."X.509" 是一个公钥代表that SSL and TLS adheres to for its key and certificate management.
-nodes: 告诉OpenSSL生产证书时忽略密码环节.(因为我们需要Nginx自动读取这个文件,而不是以用户交互的形式)。
-days 36500: 证书有效期,100年
-newkey rsa:2048: 同时产生一个新证书和一个新的SSL key(加密强度为RSA 2048)
-keyout:SSL输出文件名
-out:证书生成文件名
它会问一些问题。需要注意的是在common name中填入网站域名,如wiki.xby1993.net即可生成该站点的证书,同时也可以使用泛域名如*.xby1993.net来生成所有二级域名可用的网站证书。
整个问题应该如下所示:

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bouncy Castles, Inc.
Organizational Unit Name (eg, section) []:Ministry of Water Slides
Common Name (e.g. server FQDN or YOUR name) []:your_domain.com
Email Address []:admin@your_domain.com

步骤2: Configure Nginx to Use SSL

首先配置HTTP请求重定向

server {
        listen       80;
        server_name  www.yourdomain.com;
        rewrite ^ https://$http_host$request_uri? permanent;    # force redirect http to https
    #return 301 https://$http_host$request_uri;
    }

server {
        listen 443 ssl;

        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;
    keepalive_timeout   70;
        server_name www.yourdomain.com;
    #禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
    server_tokens off;
    #如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
    #add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
        # ......
        fastcgi_param   HTTPS               on;
        fastcgi_param   HTTP_SCHEME         https;

    access_log      /var/log/nginx/wiki.xby1993.net.access.log;
        error_log       /var/log/nginx/wiki.xby1993.net.error.log;
    }

如果想同时启用HTTP和HTTPS

server {
    listen              80;
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ...
}

步骤3:重启nginx

sudo service nginx restart

附录1、证书格式说明
.crt:自签名的证书
.csr:证书的请求(用于向证书颁发机构申请crt证书时使用,nginx配置时不会用到)
.key:SSL Key (分为不带口令和带口令版本)。
我们自签名证书配置nginx需要的是.crt证书,和不带口令的SSL Key的.key文件。

附录2、可靠的第三方SSL证书颁发机构
目前一般市面上针对中小站长和企业的 SSL 证书颁发机构有:
StartSSL
Comodo / 子品牌 Positive SSL
GlobalSign / 子品牌 AlphaSSL
GeoTrust / 子品牌 RapidSSL

参考:
https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-nginx-for-ubuntu-14-04
http://nginx.org/en/docs/http/configuring_https_servers.html
http://manual.seafile.com/deploy/https_with_nginx.html
https://s.how/nginx-ssl/

更多参考资料:
http://www.liaoxuefeng.com/article/0014189023237367e8d42829de24b6eaf893ca47df4fb5e000
https://github.com/michaelliao/itranswarp.js/blob/master/conf/ssl/gencert.sh
http://www.21andy.com/new/20100224/1714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置Nginx与MinIO一起使用HTTPS,您需要遵循以下步骤: 1. 安装和配置Nginx:首先,确保您已经在服务器上安装了Nginx,并且已经进行了基本的配置。您可以在Nginx的官方网站上找到适合您操作系统的安装说明。 2. 生成SSL证书:您需要为您的域名生成SSL证书,以便启用HTTPS。您可以使用自签名证书,或者从认证机构(例如Let's Encrypt)获取免费的SSL证书。 3. 配置Nginx反向代理:编辑Nginx配置文件(通常位于/etc/nginx/conf.d/目录下),创建一个新的服务器块来配置反向代理。以下是一个示例配置: ``` server { listen 80; server_name your_domain.com; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; server_name your_domain.com; ssl_certificate /path/to/your_ssl_certificate.crt; ssl_certificate_key /path/to/your_ssl_certificate_key.key; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:9000; # 这里的端口号和MinIO的配置有关 } } ``` 确保将`your_domain.com`替换为您的域名,`/path/to/your_ssl_certificate.crt`和`/path/to/your_ssl_certificate_key.key`替换为您的SSL证书和私钥的实际路径。 4. 重启Nginx:完成配置后,重新启动Nginx以使更改生效。您可以使用以下命令重启Nginx: ``` sudo service nginx restart ``` 现在,您的Nginx已经配置为使用HTTPS,并将请求代理到MinIO服务器。您可以通过访问`https://your_domain.com`来访问MinIO服务。 请注意,此配置仅适用于将MinIO与Nginx在同一台服务器上部署的情况。如果您将MinIO部署在不同的服务器上,请相应地修改Nginx配置中的`proxy_pass`指令。 希望对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值