Realm对象服务器的Https代理无法正常工作

时间:2017-03-22 13:25:24

标签: realm realm-mobile-platform realm-object-server

我似乎无法运行我的Realm Object Server的https代理。我已经跟踪了文档中的每一步,包括编辑configuration.yml文件进行更改:

proxy.https.enable: true  
proxy.https.listen_address: ::  
proxy.https.listen_port: 9443  
proxy.https.certificate_path: 'cert_path'
proxy.https.private_key_path: 'private_key_path'

当我访问http://example.com:9080时,它很好,但访问https://example.com:9443不起作用 - 我已验证路径是否正确,以及证书/私钥组合是有效的。

我非常感谢任何配置此功能的帮助,因为我试图让应用符合Apple的ATS要求!

1 个答案:

答案 0 :(得分:7)

Realm对象服务器由“领域”用户启动,您应该检查用户是否有权访问证书。

以下是使用letsencrypt设置https的说明列表!在Ubuntu 16.04上,也许它有助于识别您的问题:

  1. 安装ROS,letsencrypt并生成证书
  2. curl -s https://packagecloud.io/install/repositories/realm/realm/script.deb.sh | sudo bash

    apt-get install realm-object-server-developer
    apt-get install letsencrypt
    
    letsencrypt certonly --standalone -d ${mydomain.com}
    
    # set up permissions for the realm user on /etc/letsencrypt.
    sudo groupadd ssl
    sudo usermod -a -G ssl realm
    sudo chgrp -R ssl /etc/letsencrypt
    sudo chmod -R g=rX /etc/letsencrypt
    
    1. 编辑配置以在“代理”部分中启用ssl
    2. /etc/realm/configuration.yml中的部分:

        https:
          ## Whether or not to enable the HTTPS proxy module. It enables multiplexing requests
          ## by forwarding incoming requests on a single port to all services.
          ## Note that even if it enabled, the HTTPS proxy will only start if supplied
          ## with a valid pair of certificates through certificate_path and private_key_path below.
          enable: true
      
          ## The path to the certificate and private keys (in PEM format) that will be used
          ## to set up the HTTPS server accepting connections.
          ## These configuration options are MANDATORY to start the HTTPS proxy module.
          certificate_path: '/etc/letsencrypt/live/${mydomain.com}/cert.pem'
          private_key_path: '/etc/letsencrypt/live/${mydomain.com}/privkey.pem'
      
          ## The address/interface on which the HTTPS proxy module should listen. This defaults
          ## to 127.0.0.1. If you wish to listen on all available interfaces,
          ## uncomment the following line.
          listen_address: '::'
      
          ## The port that the HTTPS proxy module should bind to.
          # listen_port: 9443
      
      1. 连接到信息中心并创建一个帐户。 (转到https://${mydomain.com}:9443

      2. 转到浏览器并选择“连接到对象服务器” 输入realms://${mydomain.com}:9443作为服务器URL,以及您刚刚创建的用户名和密码。 你应该看到一系列领域。