如何在云帮上配置 https - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
goodraincloud
V2EX    问与答

如何在云帮上配置 https

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

    序 相关组件介绍

    本次分享主要涉及到两个模块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     Solana     5927 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 02:12 PVG 10:12 LAX 19:12 JFK 22:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86