如何使用手机上的自定义域和SSL访问在本地运行的网站?

时间:2018-09-09 18:17:57

标签: wordpress docker ssl squid mitmproxy

我的机器(OSX)上本地运行着一个WordPress(WP)博客。 WP网站URL设置设置为https://abc.dev,我可以在计算机的浏览器上访问该网站而没有任何问题。

从外观上看,像这样:

enter image description here

WP端口运行在端口443上,我正在使用自签名证书来使其正常工作。我从this website获得了自签名证书。我已将自签名证书导入OSX钥匙串访问并标记为Always Trust

这是我用于该WP的 docker-compose.yml 文件的样子:

version: '2'
services:
  wordpress:
    build: .
    ports:
      - 8080:80
    volumes:
      - ./config/php.conf.uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
      - ./wp-app:/var/www/html # Full wordpress project
      #- ./plugin-name/trunk/:/var/www/html/wp-content/plugins/plugin-name # Plugin development
      #- ./theme-name/trunk/:/var/www/html/wp-content/themes/theme-name # Theme development
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: password
    depends_on:
      - db
    networks:
      - wordpress-network
  db:
    image: mysql:latest
    ports:
      - 127.0.0.1:3306:3306
    command: [
        '--default_authentication_plugin=mysql_native_password',
        '--character-set-server=utf8mb4',
        '--collation-server=utf8mb4_unicode_ci'
    ]
    volumes:
      - ./wp-data:/docker-entrypoint-initdb.d
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_ROOT_PASSWORD: password
    networks:
      - wordpress-network
  caddy:
    image: abiosoft/caddy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    links:
      - wordpress
    volumes:
      - "./Caddyfile:/etc/Caddyfile"
      - "./caddy:/var/caddy"
    networks:
      - wordpress-network
networks:
  wordpress-network:
      driver: bridge

这是Caddyfile:

abc.dev:443
root /var/www/html

tls /var/caddy/cert.pem /var/caddy/key.pem
proxy / wordpress {
    transparent
}

log     stdout
errors  stderr

树形结构如下:

├── Caddyfile
├── caddy
│   ├── cert.pem
│   └── key.pem
└── docker-compose.yml

由Docker Compose打开的端口:

$ lsof -PiTCP -sTCP:LISTEN | grep com.dock

com.docke 497 zz   18u  IPv4 0xc97e1c7b362c847b      0t0  TCP localhost:3306 (LISTEN)
com.docke 497 zz   23u  IPv6 0xc97e1c7b3aa15d0b      0t0  TCP localhost:3306 (LISTEN)
com.docke 497 zz   24u  IPv4 0xc97e1c7b50618b83      0t0  TCP *:8080 (LISTEN)
com.docke 497 zz   25u  IPv6 0xc97e1c7b3aa1624b      0t0  TCP localhost:8080 (LISTEN)
com.docke 497 zz   27u  IPv4 0xc97e1c7b39e63b83      0t0  TCP *:443 (LISTEN)
com.docke 497 zz   28u  IPv4 0xc97e1c7b5061b85b      0t0  TCP *:80 (LISTEN)

我在wordpress打开8080端口的主要原因是因为Caddy希望打开80443端口。因此,这样做可以帮助我解决端口冲突问题。

我现在的问题是,我想在手机上访问WP站点,并且我希望URL在手机中也为https://abc.dev

在过去的几天里,我一直在与Squid代理和Mitmproxy到处乱逛,没有发现任何运气。

我一般尝试过的一些事情:

  1. 使用SquidMan设置代理
  2. 设置运行reverse模式的Mitmproxy
  3. 设置运行upstream模式的Mitmproxy
  4. 在手机中安装并信任Mitmproxy cert
  5. 使用VirtualBox在我的计算机(OSX)顶部设置Ubuntu 18 Server VM,安装Mitmproxy,运行Mitmproxy,配置主机(OSX)和电话以将Ubuntu 18 Server用作代理

以上所有步骤都不适合我,而且我不知道如何使此设置适合我。

我不想将WP网站URL设置更改为其他URL,即http://localhost[:port]https://localhost[:port],因为它在我的计算机上可以正常工作。

此外,我希望设置的外观和行为与生产网站一样,该网站使用相同的URL结构https://example.com运行。

我找到了CharlesProxy,但是我不喜欢它,因为它是一种付费软件。我确信Squid,Mitmproxy和其他一些工具可以帮助我解决这个问题。我只是不确定该怎么做。

非常感谢您提供的所有帮助和指示。

0 个答案:

没有答案