在OpenShift Online v3中验证let的加密域名所有权

时间:2018-01-12 06:28:37

标签: openshift lets-encrypt openshift-3 openshift-online

为了获得 let的加密证书,我必须验证我是域的所有者。如果您在 OpenShift Online 中的容器中运行自己的应用程序,则没有问题。但在这种情况下,我只是从官方docker注册表中提取图像并直接在 OpenShift Online 中运行。

我现在能够想到的唯一方法是登录正在运行的pod并在那里安装/运行Web服务器。但这对我来说似乎有些苛刻,我甚至不确定这在第三方图像提供的环境中是否可行。

有没有人知道如何在 OpenShift Online v3中执行此操作?

1 个答案:

答案 0 :(得分:0)

自己解决了。解决方案是使用带有certbot的 DNS-01 Challenge

使用此方法,您需要为要保护的域创建 TXT记录,并添加从 certbot 获取的密钥作为TXT记录的值。然后,Certbot通过从TXT记录中读取密钥来验证您的域名所有权。这就是它的工作原理:

首先我运行了这个命令:

sudo certbot -d mysubdomain.mydomain.com --manual --preferred-challenges dns certonly

返回一个如下所示的子域:_acme-challenge.mysubdomain和一个如下所示的键:M7MsmY-YywYddXfAVwaKje...

然后我使用以下值为mydomain.com创建了 TXT记录

Type: TXT Record
Host: _acme-challenge.mysubdomain
Value: M7MsmY-YywYje...

我使用域名注册商的网络界面来创建TXT记录。

TXT记录需要一段时间才能公开发布。我在笔记本电脑上使用此命令来检查TXT记录是否准备就绪:

dig -t txt _acme-challenge.mysubdomain.mydomain.com +short

一旦它返回密钥就准备就绪。准备就绪后,您可以返回certbot终端窗口并按ENTER键开始验证过程。

如果一切正常,certbot将证书/私钥保存在:

/etc/letsencrypt/live/mysubdomain.mydomain.com/

您可以使用新的certifacate / privatekey创建一个安全路由,如下所示:

sudo oc create route edge my-route-name \ 
--service=my-service \
--cert=/etc/letsencrypt/live/mysubdomain.mydomain.com/fullchain.pem \
--key=/etc/letsencrypt/live/mysubdomain.mydomain.com/privkey.pem \
--hostname=mysubdomain.mydomain.com \
--insecure-policy=Redirect -n my-project