如何使用SAP Cloud Platform Custom Domain Service设置个性化域名
本文章主旨是为SAP Cloud Platform Cloud Foundry环境下设置个性化域名,实现在自己的域名下公开自己的应用程序方案。
通过SAP Cloud Platform自定义域服务,可以配置自己的自定义域以公开公开您的SAP Cloud Platform应用程序,而不使用默认子域。
前期准备
- cf-cli,下载安装好本机CF Command line。https://docs.cloudfoundry.org/cf-cli/install-go-cli.html
- 安装Custom Domain Self-service插件。https://tools.hana.ondemand.com/#cloud -> SAP Cloud Platform Cloud Foundry CLI Plugin -> Custom Domain Self-service
- 确保自己子账户下面有Custom Domain这一项服务。这项服务具体如如何查看,cf services
- 申请好自己的域名
总概述图如下
有概述图可以看出,使用Custom Domain过程中会设计四个不同的机构或平台,看上去复杂执行起来其实不难。请耐心看完以下内容。
以上准备工作都已经完成,接下来我们通过CF command line来完成custom domain的创建和应用的过程。
执行步骤
查看你的域名DNS是否有用
1 | nslookup asb.cpgc.cn40.apps.platform.<安全原因请查看截图完整地址> |
域名有用说明你申请域名服务器是没有任何问题。
使用CF Custom Domain 服务创建域名,生成私钥和CSR
安装Custom Domain Cli
1
2
3
4
5
6# 解压custom domain cli
tar -xf custom-domain-cli-1.0.36-darwin-amd64-x86_64.tar.gz
cd darwin-amd64/
# 安装 plugin
cf install-plugin custom-domain-cli登录到CF账户中,创建custom domain服务
1
2
3
4
5
6# 登录
cf login -a https://api.cf.cn40.platform.<安全原因请查看截图完整地址>
# 创建 domain服务
cf cs INFRA custom_domains pocdomain
cf create-domain "SCP GC CEE_Demo" cpgc.cn40.apps.platform.<安全原因请查看截图完整地址>
cpgc.cn40.apps.platform.<安全原因请查看截图完整地址>
这里域名就是我自己申请的域名
生成私钥和CSR
1
cf cdck cpgc-cn40-key "CN=*.cpgc.cn40.apps.platform.<安全原因请查看截图完整地址>" "*.cpgc.cn40.apps.platform.<安全原因请查看截图完整地址>"
获取CSR
1
cf custom-domain-get-csr cpgc-cn40-key csr.pem
保存好你的csr证书,接下来要那这个证书去证书机构进行签发。
注意,证书内容你只需要保存 「—–BEGIN CERTIFICATE REQUEST—– *** —–END CERTIFICATE REQUEST—–」这里面的内容。
去证书机构请求CSR获取签名
拿着上面获得CSR发送给CA证书办法机构去验证,当验证成功之后,CA机构会给你发回的相应的Cert。
我收到有DigiCert颁发的Intermediate Certificates。
最后将三个证书合并成一个Pem文件。
三个证书分别是:CA机构颁发的证书客户端证书, CA机构颁发的服务端证书和中间发证机构根证书的。
保存文件名为<your-domain-name>-chain.pem, 我的是cpgc-chain.pem。
如果你不是有机构来颁发的证书,也可以使用第三方开源来颁发,在这里不在多说,有兴趣的请搜索关键字acme。作为一个正规机构还是请使用正规渠道。
接下来我们需要导入证书并激活。
导入并激活证书
导入证书
1
cf cducc cpgc-cn40-key cpgc-chain.pem
激活证书
1
cf cda cpgc-cn40-key cpgc.cn40.apps.platform.<安全原因请查看截图完整地址> *.cpgc.cn40.apps.platform.<安全原因请查看截图完整地址>
查看证书激活状态
1
2echo -n | openssl s_client -connect cpgc.cn40.apps.platform.<安全原因请查看截图完整地址>:443
-servername *.cpgc.cn40.apps.platform.<安全原因请查看截图完整地址>
好了,你已经成功了。接下来我们就可以使用自己的域名去发布应用了。
使用自己域名发布应用
- 修改你的manifest.yml
在yaml里面添加routes,route填写自己的domain。1
2
3
4
5
6
7
8
9
applications:
- name: chat
host: i304185-chat
routes:
- route: chat.cpgc.cn40.apps.platform.<安全原因请查看截图完整地址>
path: .
memory: 128M
buildpack: nodejs_buildpack - 部署你的应用
1
2
3
4
5# 部署
cf push
# 查看apps route地址
cf apps
分享域名给你的其余Org使用
当然当你配好了域名之后,只是在当前的组织里面使用,你也可以将自己的域名分配给其余组织使用,这个组织必须在你的全局账户之下。
1 | # 分享域名 |
坑点
Aliyun证书不支持重新颁发,如果你不小心删掉配好的证书。恭喜你,你要重新再购买了。选择SSL供应商,请提前咨询好
是否支持重新颁发CA
。CF不支持私钥导出,所以不支持不同Account导入导出功能。
感谢阅读,打完收工。
参考资料
SAP内部wiki https://wiki.wdf.sap.corp/wiki/pages/viewpage.action?pageId=2098634698
Sharing Custom Domains https://help.sap.com/viewer/74af813c7ee2457cb5eddca0cc70a0c1/Cloud/en-US/8ecabca8e9cc449f9de3eb34870ef490.html
感谢
Bella Wang提供的支持,因为你的支持,我才能尽快完成了custom domain的配置,感恩。