我正在尝试使用 Google Cloud IoT Core 注册 IoT 设备,但在使用安装在 Google Cloud(设备注册表)上的 CA 证书签署设备公钥时遇到问题。
以下是谷歌的要求:
- CA 和设备证书必须是 X.509v3,以 base64 编码,包装在 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 中。
- CA 证书不需要自签名(“根 CA”);设备证书必须由注册表级别的特定 CA 证书签名。
- Cloud IoT Core 拒绝未由注册表级证书签名的设备公钥。
- CA 和设备证书必须采用 PEM 格式
在通过 StackOverflow 和其他地方的先前响应之后,这是我迄今为止尝试过的(使用默认配置文件):
选项1
- openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout ca.key -out ca.crt -subj "/CN=unused"
- openssl req -nodes -newkey rsa:2048 -days 365 -keyout device.key -out device.csr -subj "/CN=unused"
- openssl x509 -req -days 365 -in device.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out device.crt
选项 2
- openssl req -new -x509 -nodes -days 365 -newkey rsa:2048 -keyout ca.key -out ca.crt -subj "/CN=unused"
- openssl genrsa -out device.key 2048
- openssl req -new -days 365 -key device.key -out device.csr -subj "/CN=unused"
- openssl x509 -req -days 365 -in device.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out device.crt
在这两种情况下都可以正常创建证书,但是当我尝试使用此证书注册设备时,我收到一条错误消息,指出无法根据 CA 证书验证设备证书。
签署设备证书时我做错了什么?您可以忽略 Cloud IoT 配置,因为我已经验证它可以工作(没有 CA 证书)。
非常感谢!