本教程介绍如何在IBM Cloud上安装SSL证书。IBM Cloud有两种基础架构类型,每种类型处理证书的方式不同:VPC(虚拟私有云)将证书存储在Secrets Manager中并将其附加到负载均衡器,而Classic基础架构则保留自己的SSL证书存储区。您还将学习如何为IBM Cloud生成CSR。
为IBM Cloud生成CSR
如果您已经生成了CSR并从证书颁发机构收到了您的证书,请跳过第一步,直接转到与您的基础架构类型对应的部分。
CSR(证书签名请求)是携带您的联系信息和域名信息的一段编码文本。要获得SSL证书,您需要创建CSR并将其发送给证书颁发机构进行验证。生成CSR的同时也会生成您的私钥,安装时需要用到它。IBM Cloud没有可以为导入的证书创建CSR或密钥的控制台表单,因此这两者都需要您自己生成。
您有两种选择:
要使用OpenSSL生成CSR和2048位密钥,请运行:
openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr
在订购时将CSR提交给证书颁发机构。请将私钥保存在安全的地方,不要与他人共享。请不要遗失或删除它:没有与之匹配的密钥,颁发的证书将无法安装。
注意:-nodes标志使密钥保持未加密状态,这正是IBM Cloud所要求的(Secrets Manager和Classic证书存储都会拒绝受密码保护的密钥)。请不要在CSR中添加质询密码。
在IBM Cloud VPC(Secrets Manager)上安装SSL证书
这是适用于VPC工作负载的当前方法:应用负载均衡器(Application Load Balancer)、通过ALB实现的Kubernetes Ingress,以及现代化部署。证书存储在Secrets Manager中,负载均衡器从那里读取证书,因此步骤为:导入证书、授权负载均衡器,然后在HTTPS监听器上选择该证书。
关于Certificate Manager:较早的IBM Cloud指南提到过一项名为Certificate Manager的服务。IBM已将其淘汰(支持终止日期为2022年12月31日),并将证书存储功能迁移到了Secrets Manager中。如果您在旧版Certificate Manager实例中仍存有证书,请将它们迁移到Secrets Manager。对于新的安装,请直接使用下面展示的Secrets Manager方法。
在开始之前,您需要拥有一个Secrets Manager实例。如果您还没有,请从IBM Cloud目录中创建一个(Trial计划或Standard计划均可),然后返回本页面。
第1步:准备证书文件
验证通过后,证书颁发机构会向您发送一个ZIP压缩包。将其解压。您应该会得到PEM格式的三个文件:
- yourdomain.crt,您的服务器(叶)证书。
- intermediate.crt或yourdomain.ca-bundle,中间证书。
- yourdomain.key,您在生成CSR时创建的未加密私钥。
如果您的密钥受密码保护,请先移除密码,因为Secrets Manager只接受未加密的密钥:
openssl rsa -in yourdomain.key -out yourdomain_nopass.key
第2步:将证书导入Secrets Manager
- 在IBM Cloud控制台中,打开导航菜单并进入Resource list(资源列表)。
- 展开Security(安全),并选择您的Secrets Manager实例。
- 在Secrets(机密)表格中,点击Add(添加)。
- 在第一页上,选择TLS certificate(TLS证书)。在下一页,选择Import certificate(导入证书)。
- 为该机密项设置一个Name(名称,不含空格),然后上传您的文件:将服务器证书上传到Certificate(证书)字段(必填),将私钥上传到Private key(私钥)字段(若要正常工作的HTTPS监听器则为必填),以及将中间证书上传到Intermediate (ICA)字段(推荐上传,以确保证书链完整)。
- 点击Create(创建)以保存证书。
注意:机密名称不能包含空格,以星号开头的名称将被重写为star。私钥必须与证书匹配,且两者都必须是未加密的PEM格式。
第3步:授权负载均衡器读取Secrets Manager
在VPC负载均衡器可以使用证书之前,您需要在IAM中通过服务间授权(service-to-service authorization)授予它访问权限。每个账户只需执行一次此操作。
- 转到Manage > Access (IAM) > Authorizations(管理 > 访问权限(IAM) > 授权),并点击Create(创建)。
- Source service(源服务):VPC Infrastructure Services。将Resource type(资源类型)缩小为Load Balancer for VPC。
- Target service(目标服务):Secrets Manager(将其限定为存放您证书的实例)。
- Service access role(服务访问角色):Writer。
- 点击Authorize(授权)以保存设置。
第4步:将证书附加到HTTPS监听器
- 从IBM Cloud控制台打开您的Application Load Balancer(应用负载均衡器)(在VPC Infrastructure > Load balancers下)。
- 在443端口上添加一个新的HTTPS监听器,或编辑现有的监听器。
- 对于SSL证书,从Secrets Manager中选择您的证书,或粘贴证书的CRN(Cloud Resource Name,云资源名称)。
- 点击Save(保存)以应用该监听器。
现在您的负载均衡器使用存储在Secrets Manager中的证书来提供HTTPS服务。要确认结果,请使用我们的SSL检测工具,或在浏览器中打开网站并查看锁形图标。
关于续订:当您在Secrets Manager中更换证书时,监听器并不总是能自动获取该更改。如果旧证书仍在被使用,请编辑监听器(例如重新选择证书或调整资源池),以强制负载均衡器重新加载证书。
在IBM Cloud(经典基础架构)上安装SSL证书
仅当您使用Classic(经典)基础架构(经典负载均衡器或其他经典服务)时,才使用本节内容。此内容不适用于VPC或应用负载均衡器。您可以从控制台或CLI导入证书,然后将其分配给经典负载均衡器的监听器。
选项A:从控制台导入
- 在IBM Cloud控制台中,打开导航菜单并进入Security > SSL > Certificates(安全 > SSL > 证书)。
- 点击Import SSL certificate(导入SSL证书)并填写以下字段:
- Certificate(证书):yourdomain.crt的内容。
- Private Key(私钥):yourdomain.key(未加密)的内容。
- Intermediate Certificate(中间证书):intermediate.crt的内容。
- 点击Add(添加)。该证书会一直保留在SSL证书列表中,直到您将其删除,您可以将它分配给任何需要SSL的经典服务。
选项B:从IBM Cloud CLI导入
如果您更喜欢使用命令行,可以使用经典基础架构插件在一条命令中上传证书、私钥和中间证书链:
ibmcloud sl security cert-add --crt server.crt --key server.key --icc intermediate.crt
通过列出经典证书存储中的证书来确认上传成功:
ibmcloud sl security cert-list
该命令会返回每个证书的id及其通用名称。请记下您刚添加证书的id;在分配证书时会用到它。
将证书分配给经典负载均衡器
- 打开IBM Cloud控制台并在导航菜单中进入Classic Infrastructure(经典基础架构)。
- 进入Network > Load Balancers(网络 > 负载均衡器),并选择您要配置的负载均衡器(Local或Global,取决于您的配置)。
- 打开Listeners(监听器)选项卡。如果没有HTTPS监听器,请添加一个。
- 在HTTPS监听器的SSL设置中,从下拉菜单中选择您上传的证书,然后保存。
现在您的经典负载均衡器将使用您导入的证书来终止TLS连接。请使用我们的SSL检测工具进行验证。
常见问题
不。IBM Cloud Certificate Manager已被弃用,并于2022年12月31日停止支持。证书存储功能已迁移到Secrets Manager中,这是目前用于导入证书并将其附加到VPC负载均衡器的服务。如果您在旧版Certificate Manager实例中仍存有证书,请将它们迁移到Secrets Manager。
这是两代不同的基础架构,它们对证书的处理方式不同。VPC是当前的平台:证书存放在Secrets Manager中,并由负载均衡器引用。Classic(基于旧版SoftLayer的基础架构)在Security > SSL下保留自己的SSL证书存储区。请使用与您资源所运行的基础架构相匹配的部分。
不能。IBM Cloud没有能为导入的证书创建CSR或私钥的控制台表单。您需要使用我们的CSR生成器或OpenSSL自行生成这两者,订购证书,然后导入颁发的证书及匹配的密钥。
常见原因是密钥被加密了。Secrets Manager需要的是与证书匹配的未加密PEM密钥。如果您的密钥受密码保护,请使用openssl rsa -in yourdomain.key -out yourdomain_nopass.key移除密码,并导入转换后的文件。同时请检查该密钥是否确实与您上传的证书配对。
在VPC上,通常有两个常见原因。首先,可能缺少IAM授权,导致负载均衡器无法读取机密:请在第3步中创建授权(源为VPC Infrastructure Services,目标为Secrets Manager,角色为Writer)。其次,导入的证书未附加私钥,或监听器上的CRN有误。请重新导入并包含密钥,然后重新选择证书。
您的服务器(叶)证书应放在最前面,接着是中间证书。在VPC中,您将叶证书放在Certificate字段中,中间证书放在Intermediate (ICA)字段中,因此二者会分开存放。证书链缺失或顺序错误是浏览器和SSL检测工具报告证书路径不完整的常见原因。


