假设应用程序名为 https 并且证书的域名名为 www.example.com
首先(如果尚未完成)安装 rhc 工具,https://developers.openshift.com/en/managing-client-tools.html
第二次(如果尚未完成)通过您的 DNS 提供商设置 CNAME 记录 - 在 developers.openshift.com/en/managing-domains-ssl.html
在之前测试 www.example.com (http) 是否正常工作并指向您的 openshift 应用程序。
第三
登录您的应用程序
rhc ssh -a https
从应用程序中,安装 Simple Let's Encrypt Client 并更新一些所需的 python 包
pip install git+https://github.com/kuba/simp_le
pip install --upgrade six
pip install --upgrade setuptools
现在停止应用程序(齿轮)设置一个 python2 网络服务器,它具有正确的端口和正确的 IP。 [$OPENSHIFT_PYTHON_IP & OPENSHIFT_PYTHON_PORT]
(注意这是 python 3.4 中的一行,
python -m http.server $OPENSHIFT_PYTHON_PORT --bind $OPENSHIFT_PYTHON_IP
但是在撰写本文时openshift只有python 3.2或python 2。所以需要一个简单的python 17行脚本)
gear stop
mkdir -p /tmp/http/.well-known/acme-challenge
cd /tmp/http
wget https://gist.githubusercontent.com/bmsleight/bc34254eed0ee458738e/raw/61110fe6e3980f0c6a401acae93f221f56b1eced/simple_acme_server.py
python2 simple_acme_server.py &
转到数据目录作为存储证书的好地方,让 simp_le 发挥它的魔力
cd ~/app-root/data/
simp_le --email example@example.com -f account_key.json -f fullchain.pem -f key.pem -d www.example.com --default_root /tmp/http
假设没有错误,停止 python2 网络服务器,重新启动应用程序/齿轮并退出 openshift 服务器
killall python2
gear start
exit
第四次
证书和密钥的上传必须在应用程序之外完成,因此从您的本地计算机上获取副本然后上传它们(是的 scp 是错误的方式 - RTFM)
rhc scp -a https download ./ ./app-root/data/fullchain.pem
rhc scp -a https download ./ ./app-root/data/key.pem
rhc alias update-cert https www.example.com --certificate fullchain.pem --private-key key.pem
第五
在letsencrypt.org表达爱意