Как проверить сертификат openssl на Raspberry Pi? - PullRequest
0 голосов
/ 19 мая 2018

Я создаю тестовую сеть, используя Raspberry Pis.Мой компьютер будет CA, а мой pi zero W клиентом.Я создал самоподписанный сертификат CA на своем компьютере, запрос сертификата на pi и подписал запрос с помощью ключей CA на моем компьютере.

Когда я проверяю сертификат на пи, я получаю сообщение об ошибке.На моем компьютере нет ошибки с той же командой и теми же файлами

Ошибка на Raspberry Pi:

$ openssl verify -verbose -CAfile ca.pem pi.pem
error 18 at 0 depth lookup: self signed certificate
error cert.pem: verification failed
# ca.pem is the ca self-signed cert. pi.pem is the cert signed by ca private key

с использованием тех же файлов на моем компьютере:

$ openssl verify -verbose -CAfile ca.pem pi.pem
error cert.pem: verification failed
error 18 at 0 depth lookup: self signed certificate
OK
# ca.pem is the ca self-signed cert. pi.pem is the cert signed by ca private key

То, что я пробовал до сих пор

  1. переустановите openssl на pi
  2. замените файл openssl.cnf на файл на pi на файл на моем компьютере
  3. изменено время на Raspberry Pi
  4. поменялись ролями: пи в качестве CA и компьютер в качестве клиента.Это привело к проверке работоспособности на компьютере, но не на пи (как раньше)
  5. raspbian version is stretch not sun
  6. пробовал самозаверяющую проверку сертификата.Проверяйте работы на компьютере и пи.

Процесс создания сертификатов:

# Server: https://support.symantec.com/en_US/article.TECH242030.html
openssl req -new -sha256 -out cert.csr
openssl x509 -req -days 365 -in cert.csr -signkey privkey.pem -sha256 -out cert.crt
openssl x509 -in cert.crt -out ca.pem -outform PEM

# Client:
openssl req -new -sha256 -out pi.csr
openssl x509 -req -days 365 -in pi.csr -signkey privkey.pem -sha256 -out pi.crt # <--- privkey.pem is the privkey of CA
openssl x509 -in pi.crt -out pi.pem -outform PEM

1 Ответ

0 голосов
/ 20 мая 2018

Вам нужен какой-то файл конфигурации для вашего сертификата CA, иначе он будет использовать basicConstraints=CA:FALSE, что означает, что он создает самозаверяющий листовой сертификат, а не сертификат CA.Другими словами, вашему сертификату доверяют , но не для подписи других сертификатов .

См., Например, здесь, как создать цепочку.

https://gist.github.com/Soarez/9688998

Обратите внимание, что вам также необходимо использовать, например, -CA и -CAkey, поэтому, пожалуйста, не используйте ваши собственные команды и просто файл конфигурации.

...