V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
goodraincloud
V2EX  ›  问与答

如何在云帮上配置 https

  •  
  •   goodraincloud · 2017-03-31 17:56:19 +08:00 · 1188 次点击
    这是一个创建于 2780 天前的主题,其中的信息可能已经有所发展或是发生改变。

    序 相关组件介绍

    本次分享主要涉及到两个模块console模块和openresty模块。

    • console 模块

    即云帮(ACP)控制台模块,为用户提供可视化 Web 操作界面,监听 443 端口即可,对证书需求:域名证书即可。

    • openresty 模块

    即云帮负载均衡模块。云帮所有的对外服务都配置在负载均衡上,都是通过负载均衡转发到对应的应用与服务。大部分情况下监听 443 端口即可,如果单节点监听非占用端口即可。对证书需求:因为涉及的域名较多,这里我们选择泛域名证书。

    大概的操作流程如下:

    那么接下来就说说如何具体去配置 https 。

    0x00 利用 openssl 自签证书

    准备工作:

    cd /etc/goodrain/nginx/ssl #用于存放证书
    mkdir console.goodrain.me #域名对应的目录
    cd console.goodrain.me
    

    生成证书操作:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/goodrain/nginx/ssl/console.goodrain.me/console.key -out /etc/goodrain/nginx/ssl/console.goodrain.me/console.crt
    

    特别说明:回车之后会让填写一些信息,这些适当根据提示填写。但是最重要的就是要求 Common Name 填写慎重,您需要输入与您的服务器关联的域名或您的服务器的公共 IP 地址。

    demo 如下:

    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:BeiJing
    Locality Name (eg, city) [Default City]:BeiJing
    Organization Name (eg, company) [Default Company Ltd]:Goodrain, Inc.
    Organizational Unit Name (eg, section) []:Cloud 
    Common Name (eg, your name or your server's hostname) []:console.goodrain.me
    Email Address []:[email protected]
    

    域名一定要写自己所需 https 的域名。

    0x01 云帮控制台支持 https

    • 备份 console 配置文件

    cp console ~/ #备份路径自选,但不要备份到当前目录下

    • 编辑 console 文件
    #在原有的配置下添加如下配置
    #ip 同原配置里的监听 8688 的 ip 相同
    server {
        listen ip:443;
        server_name console.goodrain.me;
            ssl          on;
        ssl_certificate /etc/nginx/ssl/console.goodrain.me/console.crt;
        ssl_certificate_key /etc/nginx/ssl/console.goodrain.me/console.key;
        location / {
            proxy_pass http://console;
            proxy_set_header Host $host;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 60;
            proxy_read_timeout 600;
            proxy_send_timeout 600;
        }
    }
    

    这样配置的话, http 和 https 都是支持的。如果想强制跳转修改监控 8688 的 server

    server {
        listen ip:8688;
        server_name console.goodrain.me;
            rewrite ^(.*)$  https://$server_name$1 permanent;
    }
    

    修改完。重启 nginx 服务。

    dc-compose stop nginx
    cclear
    dc-compose up -d
    

    配置到这里,控制台的 https 配置已经完成。 测试:

     [root@iZm5e7u02k402beob2081gZ ~]# curl -I console.goodrain.me/login
    HTTP/1.1 301 Moved Permanently
    Server: openresty
    Date: Thu, 30 Mar 2017 03:46:37 GMT
    Content-Type: text/html
    Content-Length: 185
    Connection: keep-alive
    Location: https://console.goodrain.me/login
    

    如果是浏览器访问,由于证书是自签的,需要添加信任。

    0x02 平台应用支持 https

    泛域名证书配置:

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

    证书上传到 openresty 服务里:

    docker cp server.crt openresty:/usr/local/openresty/nginx/conf/
    docker cp server.key openresty:/usr/local/openresty/nginx/conf/
    

    配置计算节点的 openresty :

    cd /etc/goodrain/openresty/servers/http
    cp default.conf default443.conf
    # 编辑 default443.conf
    修改如下:
    listen       7443;
    ssl on;
    ssl_certificate /usr/local/openresty/nginx/conf/server.crt;
    ssl_certificate_key /usr/local/openresty/nginx/conf/server.key;
     #其他保持不变。
    

    这里监听的是 7443 ,因为我的是单节点部署的, 443 端口已经被其他服务监听,故使用 7443 端口。 配置完以上的,重启 openresty 即可。

    dc-compose stop openresty
    cclear
    dc-compose up -d
    

    配置到这里,应用的 https 已经配置完成了。 测试: curl https://domain:7443 即可,如果多节点配置直接配置 443 就 ok 了。

    说明:当仅一台服务器时无法监听 443 端口,需使用非被占用的端口如 7443 ,访问域名就是 https://domain:7443 如果计算节点和管理节点不在同一台服务器上,即可监听 443 端口。 https://domain

    0x03 END

    配置到这里,云帮 https 已经配置完成了。如果后期有什么问题,可以回帖或相关群组里反馈。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2702 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:41 · PVG 16:41 · LAX 00:41 · JFK 03:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.