Caddy - 在本地域上设置HTTPS

时间:2016-08-18 09:55:29

标签: https localhost caddy caddyfile

我想将HTTPS添加到我的本地域,但是我们无法在localhost上执行此操作。

当我使用这个Caddyfile

运行时,我的网站运行正常
localhost:2020 {
  bind {$ADDRESS}
  proxy / http://192.168.100.82:9000 {
    transparent
  }
}

但我想说出这个网站的名称,或者至少在其上启用HTTPS。根据Caddy的说法,你不能在localhost上这样做,但如果我有域名怎么办?

我尝试使用我自己的本地地址和这个Caddyfile

192.168.100.26 {
  bind {$ADDRESS}
  proxy / http://192.168.100.82:9000 {
    transparent
  }
}

一切正常但我仍然没有HTTPS ......

当我尝试添加一个随机域名时,例如

www.mycaddytest.com {
  bind {$ADDRESS}
  proxy / http://192.168.100.82:9000 {
    transparent
  }
}

我收到以下错误

Activating privacy features...2016/08/18 11:53:26 [www.mycaddytest.com] failed to get certificate: acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for www.mycaddytest.com
Error Detail:
Validation for www.mycaddytest.com:80
Resolved to:

Used: 

我知道这个错误是由于一个不存在的域名,但有没有办法处理?

只需在localhost或ip地址上获取HTTPS就足够了

2 个答案:

答案 0 :(得分:11)

从Caddy 0.9开始,我们可以使用tls self_signed属性。

使用此Caddy文件

localhost:2020 {
  bind {$ADDRESS}
  proxy / 192.168.100.82:9000
  tls self_signed
}

然后尝试https://localhost:2020

答案 1 :(得分:1)

我知道答案已被接受。但我对 Caddy v0.10.14 也有同样的问题,这是一个帮助我的解决方案(但使用真正的SSL证书而不是self_signed):

  1. 首先,证书&密钥对必须位于以下目录中:var user = User.Claims.First(claim => claim.Type=="Name").Value(); 表示证书,/etc/pki/tls/certs/表示密钥。因此,使用/etc/pki/tls/private/命令

  2. 转到此目录之一
  3. 然后,使用单个命令为HTTP2.0测试创建我们自己的自签名证书。只需在命令行上执行即可生成SSL证书+密钥对:

  4. cd

    1. 之后,将文件移动到正确的目录(参见第一点)
    2. 接下来,使用此Caddy文件并尝试https://localhost:2020

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