openSSL подписывает сертификат https_client с CA
Мне необходимо:
создать сертификат CAсоздать https_client-сертификатподписать сертификат https_client центром сертификациис помощью командной строки в Linux - openSUSE. Я создаю сертификат CA:
# openssl genrsa -out rootCA.key 2048
Generating RSA private key, 2048 bit long modulus
..........................................................+++
....................+++
e is 65537 (0x10001)
# openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:AA
State or Province Name (full name) [Some-State]:A
Locality Name (eg, city) []:A
Organization Name (eg, company) [Internet Widgits Pty Ltd]:A
Organizational Unit Name (eg, section) []:A
Common Name (e.g. server FQDN or YOUR name) []:A
Email Address []:A
#
Работает отлично. Затем я создаю https_client-сертификат:
# openssl genrsa -out client1.key 2048
Generating RSA private key, 2048 bit long modulus
............................+++
.............................................+++
e is 65537 (0x10001)
#
# openssl req -x509 -new -nodes -key client1.key -days 3650 -out client1.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BB
State or Province Name (full name) [Some-State]:B
Locality Name (eg, city) []:B
Organization Name (eg, company) [Internet Widgits Pty Ltd]:B
Organizational Unit Name (eg, section) []:B
Common Name (e.g. server FQDN or YOUR name) []:B
Email Address []:B
#
Работает отлично. Теперь, когда я пытаюсь подписать https_client-сертификат с CA, я получаю некоторую ошибку здесь:
# openssl ca -in client1.pem -out client11.pem
Using configuration from /etc/ssl/openssl.cnf
Error opening CA private key ./demoCA/private/cakey.pem
139667082016400:error:02001002:system library:fopen:No such file or directory:bss_file.c:404:fopen('./demoCA/private/cakey.pem','re')
139667082016400:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:406:
unable to load CA private key
#
Я уже попробовал:
используя абсолютные пути («Ошибка открытия закрытого ключа CA» в Windows)но безуспешно для меня. Я где-то читал, что определенные введенные атрибуты должны быть такими же, как и при создании CA, но по крайней мере при создании сертификатов в Windows с использованием XCA-Tool это не правильно. Я могу вводить совершенно разные вещи, пока я подписываю это с CA, я могу использовать это Кто-нибудь может мне помочь?
Обновить: Я использую только .key и .pem, потому что это работает для меня в Windows, используя XCA-Tool ... Я на самом деле читаю openSSL Cookbook (https://www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html) чтобы увидеть, сделал ли я что-то особенное неправильно. Первая мысль,я должен использовать .csr для подписи сертификата, или я могу сделать это, используя любой другой формат?