Как создать самозаверяющий сертификат с помощью SubjectAltName с помощью OpenSSL?

Я пытаюсь создать самозаверяющий сертификат с OpenSSL с SubjectAltName в нем. Пока я создаю csr для сертификата, я предполагаю, что мне нужно использовать расширения v3 для OpenSSL x509. Я использую :

openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730 

Может ли кто-нибудь помочь мне с точным синтаксисом?

Может ли кто-нибудь помочь мне с точным синтаксисом?

Его трехэтапный процесс, и он включает в себя изменение файла openssl.cnf . Возможно, вы сможете сделать это только с параметрами командной строки, но я не делаю этого.

Найдите файл openssl.cnf . Вероятно, он находится в /usr/lib/ssl/openssl.cnf :

 $ find /usr/lib -name openssl.cnf /usr/lib/openssl.cnf /usr/lib/openssh/openssl.cnf /usr/lib/ssl/openssl.cnf 

В моей системе Debian /usr/lib/ssl/openssl.cnf используется встроенной программой openssl . В последних системах Debian он находится по адресу /etc/ssl/openssl.cnf

Вы можете определить, какой openssl.cnf используется, добавляя ложный XXX к файлу и openssl.cnf как openssl.cnf дросселирует.


Сначала измените параметры req . Добавьте раздел alternate_names в openssl.cnf с именами, которые вы хотите использовать. Нет существующих разделов alternate_names , поэтому не имеет значения, где вы его добавляете.

 [ alternate_names ] DNS.1 = example.com DNS.2 = www.example.com DNS.3 = mail.example.com DNS.4 = ftp.example.com 

Затем добавьте следующее в существующий раздел [ v3_ca ] . Найдите точную строку [ v3_ca ] :

 subjectAltName = @alternate_names 

В разделе [ v3_ca ] вы можете изменить keyUsage следующим [ v3_ca ] :

 keyUsage = digitalSignature, keyEncipherment 

digitalSignature и keyEncipherment являются стандартными для сертификата сервера. Не беспокойтесь о nonRepudiation . Это бесполезный бит, придуманный компидистами, которые хотели быть юристами. Это ничего не значит в правовом мире.

В конце концов, IETF (RFC 5280), браузеры и центры сертификации работают быстро и свободно, поэтому, вероятно, не имеет значения, какое использование ключей вы предоставляете.


Во-вторых, измените параметры подписи. Найдите эту строку в разделе CA_default :

 # Extension copying option: use with caution. # copy_extensions = copy 

И измените его на:

 # Extension copying option: use with caution. copy_extensions = copy 

Это гарантирует, что SAN будут скопированы в сертификат. Остальные способы копирования имен DNS нарушены.


В-третьих, сгенерируйте свое самозавершение:

 $ openssl genrsa -out private.key 3072 $ openssl req -new -x509 -key private.key -sha256 -out certificate.pem -days 730 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. ... 

Наконец, проверьте сертификат:

 $ openssl x509 -in certificate.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 9647297427330319047 (0x85e215e5869042c7) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/[email protected] Validity Not Before: Feb 1 05:23:05 2014 GMT Not After : Feb 1 05:23:05 2016 GMT Subject: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (3072 bit) Modulus: 00:e2:e9:0e:9a:b8:52:d4:91:cf:ed:33:53:8e:35: ... d6:7d:ed:67:44:c3:65:38:5d:6c:94:e5:98:ab:8c: 72:1c:45:92:2c:88:a9:be:0b:f9 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4 X509v3 Authority Key Identifier: keyid:34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4 X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign X509v3 Subject Alternative Name: DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com Signature Algorithm: sha256WithRSAEncryption 3b:28:fc:e3:b5:43:5a:d2:a0:b8:01:9b:fa:26:47:8e:5c:b7: ... 71:21:b9:1f:fa:30:19:8b:be:d2:19:5a:84:6c:81:82:95:ef: 8b:0a:bd:65:03:d1 а $ openssl x509 -in certificate.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 9647297427330319047 (0x85e215e5869042c7) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/[email protected] Validity Not Before: Feb 1 05:23:05 2014 GMT Not After : Feb 1 05:23:05 2016 GMT Subject: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (3072 bit) Modulus: 00:e2:e9:0e:9a:b8:52:d4:91:cf:ed:33:53:8e:35: ... d6:7d:ed:67:44:c3:65:38:5d:6c:94:e5:98:ab:8c: 72:1c:45:92:2c:88:a9:be:0b:f9 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4 X509v3 Authority Key Identifier: keyid:34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4 X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign X509v3 Subject Alternative Name: DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com Signature Algorithm: sha256WithRSAEncryption 3b:28:fc:e3:b5:43:5a:d2:a0:b8:01:9b:fa:26:47:8e:5c:b7: ... 71:21:b9:1f:fa:30:19:8b:be:d2:19:5a:84:6c:81:82:95:ef: 8b:0a:bd:65:03:d1 а $ openssl x509 -in certificate.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 9647297427330319047 (0x85e215e5869042c7) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/[email protected] Validity Not Before: Feb 1 05:23:05 2014 GMT Not After : Feb 1 05:23:05 2016 GMT Subject: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (3072 bit) Modulus: 00:e2:e9:0e:9a:b8:52:d4:91:cf:ed:33:53:8e:35: ... d6:7d:ed:67:44:c3:65:38:5d:6c:94:e5:98:ab:8c: 72:1c:45:92:2c:88:a9:be:0b:f9 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4 X509v3 Authority Key Identifier: keyid:34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4 X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign X509v3 Subject Alternative Name: DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com Signature Algorithm: sha256WithRSAEncryption 3b:28:fc:e3:b5:43:5a:d2:a0:b8:01:9b:fa:26:47:8e:5c:b7: ... 71:21:b9:1f:fa:30:19:8b:be:d2:19:5a:84:6c:81:82:95:ef: 8b:0a:bd:65:03:d1 
Interesting Posts

Могу ли я использовать инструмент для съёмки, чтобы сделать снимок экрана окна запуска Windows 8 или современных приложений?

Где я могу получить Outlook Express для Windows 8?

Сетевое копирование на Windows 7 Общий доступ к файлам не работает и убивает сетевое подключение

Как каталогизировать файлы на нескольких внешних жестких дисках, которые я хочу хранить в автономном режиме?

Кажется, мой IP-адрес меняется каждый второй или второй. Что я могу сделать?

Восстановление окна OffScreen в Windows 8

Создание события C # kill для приложения vb6?

Android GCM отправлен успешно, но не принят на некоторых устройствах

Управление памятью, повреждение кучи и C ++

Запрос CORS jQuery AJAX

Ошибка API REST возвращает хорошие практики

Отключить MRU в переключателе задач Alt + Tab

Способ вызова человека с ПК через мобильный телефон

Нужен ли главный метод в программе Java?

Странный шум при сканировании, используя scanimage и Canon Lide 35

Давайте будем гением компьютера.