在cartodb安装中启用https

时间:2018-03-30 13:39:59

标签: api amazon-web-services docker cartodb

我正在使用此图像https://github.com/sverhoeven/docker-cartodb来启动我自己的容器,然后通过nginx创建一个反向代理来启用ssl。

ssl网站启动但问题是carto没有检测到协议的变化,并且由于cbd.js在HTTP协议上的api请求,我收到混合内容警告。

例如:http://carto.gq/user/dev/api/v1/viz/?tag_name=&q=&page=1&type=&exclude_shared=false&per_page=20&locked=&tags=&shared=no&only_liked=false&order=updated_at&types=table&exclude_raster=true

我应该更改api调用协议的文件,这是我的安装https://carto.gq

1 个答案:

答案 0 :(得分:0)

启用SSL

在服务器上启用Nginx并将所有流量重定向到ssl(ubuntu):

  1. 安装Nginx

    sudo apt-get update
    sudo apt-get install nginx
    
  2. 安装certbot-nginx

    sudo add-apt-repository ppa:certbot/certbot
    sudo apt-get update
    sudo apt-get install python-certbot-nginx
    

    现在按照屏幕上显示的说明进行操作

  3. 编辑Nginx文件

    sudo nano /etc/nginx/sites-available/default
    

    现在找到现有的server_name行并将下划线_替换为 您的域名:

    server_name example.com www.example.com;
    

    现在替换下面的块:

    location / {
    …………………………
    }
    

    以下给出以及docs文件夹中的nginx-change.txt

    client_max_body_size 150M;
    
    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            #try_files $uri $uri/ =404;
            proxy_set_header Host $host;
            proxy_pass http://127.0.0.1:8088;
    }
    
  4. 然后,验证语法并重新加载Nginx以加载新配置。

    sudo nginx -t
    sudo systemctl reload nginx
    
  5. 现在跳过防火墙会稍后添加。

  6. 获取SSL证书

    sudo certbot --nginx -d carto.ml -d www.carto.ml
    

    完成此操作后,按照屏幕上的说明进行操作

  7. 在carto容器上运行8088内部端口后启用SSL:

    1. 启动容器

      docker run -d -p 127.0.0.1:8088:80 -h carto.ml sandeepgadhwal/cartodb
      
    2. 获取容器ID

      docker ps -a    
      

      示例:99718a6233b9

    3. 连接到容器bash

      docker exec -it {containerid} /bin/bash
      

      示例:docker exec -it ac2ce1a67df3 / bin / bash

    4. 安装缺少的组件

      apt-get install nano 
      
    5. 在rails文件中编辑baseurl。

      nano cartodb/app/models/user/user_decorator.rb
      

      你需要编辑第100行, 将base_url:public_url替换为base_url:public_url.sub(' http',' https') 这将更新cdb.js用于构建的user_data.base_urlglobal 许多api电话

    6. 编辑Api协议并在app_config.yml中移植,您可以在其中找到相同的内容 docker-cartodb文件夹。

      nano /cartodb/config/app_config.yml
      

      您需要编辑第35,37,40,42,46,49,51,54,258,第259,261,262行。 将端口替换为服务器的443或https端口,将http替换为https 这将更新sql的api_urls并映射Api。

    7. 退出编辑和bash

      Press ctrl + c to exit
      

      按Y并按enter

      确认写入文件

      然后退出bash

      press ctrl + q + p
      
    8. 重启容器

      docker restart {containerid}