【发布时间】:2019-07-02 15:16:59
【问题描述】:
我正在尝试向 Google Cloud IoT Core 注册 IoT 设备,但在使用安装在 Google Cloud 上的 CA 证书(设备注册表)签署设备公钥时遇到问题。
以下是 Google 的要求:
- 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 证书)。
非常感谢!
【问题讨论】:
-
openssl req -x509 -newkey rsa:2048 -days 3650 -keyout rsa_private.pem -nodes -out rsa_public.pem -subj "/CN=unused"后跟gcloud iot devices create test-dev --region=us-central1 --registry=tour-registry --public-key path=rsa_public.pem,type=rs256 -
问题是你试图成为你自己的 CA,但会失败。只需创建密钥对。
标签: google-cloud-platform openssl certificate x509certificate google-cloud-iot