背景
最近有网友反馈腾讯云 API Explorer工具,通过API上传证书(https://console.cloud.tencent.com/api/explorer?Product=ssl&Version=2019-12-05&Action=UploadCertificate&SignVersion=) 报错。 腾讯云SSL证书产品,可以管理自己的SSL证书也可以托管其他厂商发的SSL证书文件,如果托管的SSL证书文件比较多时是可以通过API来上传的,同时也可以通过控制台(https://console.cloud.tencent.com/ssl)的上传SSL证书来最终托管证书文件。以下为用户反馈的内容,通过API Explorer上传报异常错误。
这里经过排查最终的原因是,在API Explorer工具是单行输入证书体验,而实际的SSL证书文件内容是多行且有换行,换行在urlencode时会转义,最终影响接口不识别导致报错,这里优化的方案一方面是纠正转义问题,再就是把单行改为多行输入文本,方便肉眼可以看到,增强这里的用户体验。
问题
笔者在复现用户的问题时也发现了这里新的体验问题,如果你申请过腾讯云的免费SSL证书的话(https://console.cloud.tencent.com/ssl) ,申请通过后下载SSL证书的效果如下。
以下载Nginx为例,最终下载后的证书文件,截图如下。
我们可以看到这里Nginx免费证书下载后(图4) 和API Explorer工具上传证书描述不一致(图2) ,其中API Explorer工具是让输入公钥(CertificatePublicKey)和私钥(CertificatePrivateKey)与扩展名对应不上,当然如果是一个老手这里肯定不会难住,如果是一个新手就会出现问题,不知道如何填写。其实腾讯云的免费证书是通过TrustAsia等CA机构颁发的TLS/SSL证书,共分为四个文件pem/crt/key/csr,以下是不同文件的含义和对应API Explorer的内容。
证书扩展名 | 含义 | 在API Explorer上传时对应的文件名 |
---|---|---|
crt | 申请者使用自己的身份与公钥生成CSR文件(certificate signing request),请求CA给自己颁发用CA私钥签名过的证书 | |
pem | pem只是一种编码方式,内容与csr文件内容一致(公钥) | |
csr | csr包含ssl证书拥有者身份与公钥等信息 | 公钥(CertificatePublicKey) |
key | 私钥 | 私钥(CertificatePrivateKey) |
解决方案
API Explorer工具不同秘钥对应的文件扩展名。关于这里的体验我们也在持续优化中,如果您有关于腾讯云体验问题也可以给我留言。