Я также использовал AWS IoT и столкнулся с той же ошибкой, и нашел решение.
Причина ошибки
Ошибка возникает из-за расширения basicConstraints
в сертификате CA, что означает, что сертификат является CA, поэтому этот сертификат может подписывать другиеоткрытые ключи для генерации клиентских сертификатов, не установлен на TRUE
.
Обратите внимание, что сертификат клиента X содержит открытый ключ X, подписанный секретным ключом CA.Другие клиенты, например Y, могут проверить открытый ключ X, используя открытый ключ CA.
Я думаю, что у вас возникла ошибка при попытке создать сертификат CA.Сообщение об ошибке указывает, что сертификат CA не может подписывать открытые ключи других клиентов.
Ниже описано, как я это сделал.
Решение
Я предполагаю, что вы уже сгенерировали ключ CA, rootCA.key
.
Нам нужен openssl
файл конфигурации, скажем rootCA_openssl.conf
.Обратите внимание, что вы можете изменить значения.
[ req ]
distinguished_name = req_distinguished_name
extensions = v3_ca
req_extensions = v3_ca
[ v3_ca ]
basicConstraints = CA:TRUE
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = KR
countryName_min = 2
countryName_max = 2
organizationName = Organization Name (eg, company)
organizationName_default = Deeply Inc.
Затем сгенерируйте сертификат CA, используя файл конфигурации, rootCA_openssl.conf
.
openssl req -new -sha256 -key rootCA.key -nodes -out rootCA.csr -config rootCA_openssl.conf
openssl x509 -req -days 3650 -extfile rootCA_openssl.conf -extensions v3_ca -in rootCA.csr -signkey rootCA.key -out rootCA.pem
Теперь у нас есть сертификат CA, rootCA.pem
.Затем вы можете следовать инструкциям в документации AWS IoT.Например:
# Get the registration code for the use below:
# $ aws iot get-registration-code
openssl genrsa -out verificationCert.key 2048
openssl req -new -key verificationCert.key -out verificationCert.csr
# Put the registration code in Common Name field
openssl x509 -req -in verificationCert.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out verificationCert.crt -days 500 -sha256