服务器证书用于客户端认证服务端,服务器证书需要由您自行购买或自行签发并托管至阿里云数字证书管理服务。本文为您介绍如何生成并使用服务器证书。
服务器证书使用流程

使用限制
仅铂金版实例支持服务器证书管理功能。
前提条件
- 已获取CA证书。
- 已安装OpenSSL v1.1.1i或以上版本。
使用CA证书签发服务器证书
您可以向权威证书颁发机构购买服务器证书,也可以使用CA证书签发服务器证书,CA证书获取方式,请参见自签CA证书。
- 准备配置文件。
- 根据配置生成服务器证书的私钥和CSR文件。
openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <(cat server.csr.cfg)
- 生成服务器证书。
openssl x509 -req -in server.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile server.crt.cfg
- 将私钥格式转换为PKCS#8格式。
openssl pkcs8 -topk8 -nocrypt -in server.key -out server_pkcs8.key
转换后的私钥示例如下:
-----BEGIN PRIVATE KEY----- MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALaDOET1McZD0hV/ ma1YlSZjim00rVwrdXefqOHXWEqm8/HxZ3iWmKN/jGWW1aAoYFRAg0CNar1eDap4 c3wKB1s/uqjaV1StCgTjDdH90fIoH84CKIdhfirQRGiW3ZUY7rzKa63N9u2Y69YD ***** ***** ***** C8fG7VM+3q8D9NUCunNHUvmvanIPlBDHE/88PhHw/2OQLUjdy5pDAkBAiYsxCvNN PLX2WlXAXggKZvpozkig/J6klAN8pVvwM4BPgJDLk+hllM8MowOxlNjoHsI34lAQ g17SUS1ERIK+ -----END PRIVATE KEY-----
- 生成服务器证书链。
将服务器证书托管至证书管理服务时,需要上传服务器证书链的内容。
touch server_chain.crt cat server.crt >> server_chain.crt cat CA.crt >> server_chain.crt 查看证书链内容。 cat server_chain.crt
托管服务器证书
您需要将签发的服务器证书托管至阿里云证书管理服务控制台,托管后才能在云消息队列 MQTT 版控制台查看并启用服务器证书。
说明
- 服务器证书支持RSA,ECC算法。
- 若您需要自定义域名,可在证书中添加域名,并通过CNAME(Canonical Name)指向云消息队列 MQTT 版实例的接入点域名。
- 登录云消息队列 MQTT 版控制台,并在左侧导航栏单击实例列表。
- 在顶部菜单栏选择目标地域,然后在实例列表中单击实例名称进入实例详情页面。
- 在左侧导航栏选择创建证书。 ,然后在页面左上角单击系统将自动跳转到阿里云证书管理服务控制台的SSL 证书页面。
- 在SSL 证书页面,单击上传证书。在弹出的上传证书面板中填写相关参数然后单击确定。具体操作,请参见上传SSL证书。
- 证书标准:选择国际标准。
- 证书文件:填写服务器证书链的内容,将PEM或者CRT格式的证书文件打开,并复制其内容粘贴至文本框。
- 证书密钥:填写服务器证书私钥转换为PKCS#8格式后的内容,将KEY格式的证书私钥文件打开,并复制其内容粘贴至文本框。
使用服务器证书启动服务
- 启动服务会重启云消息队列 MQTT 版实例,重启时间预计5~10分钟,重启后客户端即可使用服务器证书做服务端认证。
- 启动服务后,8883端口将开启双向认证,同时关闭单向认证。
- 服务器证书认证开启后,客户端接入时可以不需要填写AK(AccessKey)、SK(AccessKey Screct),服务端将按照设备证书进行认证。
如果您同时使用证书认证并填写了AK、SK,则服务端会在证书认证后,验证AK、SK的正确性,以及资源所属的GID,填写ClientID时需要添加GID_XXX@@@前缀。更多信息,请参见名词解释。
- 若客户端仅使用证书认证而不使用AK、SK认证,您需要提前创建一个名称为GID_Default的Group。
该场景下ClientID填写时无需添加GID_XXX@@@的前缀,系统会自动添加GID_Default@@@的前缀。
创建Group ID,请参见Group操作。
警告 使用服务器证书启动服务,启动过程中客户端会断开连接,请您谨慎操作。
- 登录云消息队列 MQTT 版控制台,进入服务器证书页面。
- 在证书列表中选择指定服务器证书,并在其操作列单击启动服务。
- 在弹出的提示对话框中仔细阅读提示信息并单击确认。