Получить сертификат SSL на локальном хосте - PullRequest
0 голосов
/ 17 ноября 2018

Я создаю приложение «сервер-клиент» и хочу получить сертификат.Я пытался найти некоторые учебные пособия, например, я нашел это:

openssl req -x509 -out localhost.crt -keyout localhost.key \
 -newkey rsa:2048 -nodes -sha256 \
 -subj '/CN=localhost' -extensions EXT -config <( \
 printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")

Но я получил "Не удается найти файл".Пожалуйста, скажите мне, как это сделать.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Создайте сертификат, используя приведенные ниже коды. Создайте эти файлы в папке. С помощью командной строки перейдите («cd») к этой папке и затем запустите «bash generate.sh» без кавычек. Обратите внимание, что вам необходимо установить bash. Если вы установили git-scm, значит, у вас уже есть bash. Затем следует создать папку с именем Certificates. Если вы хотите git clone проекта GitHub, ссылка будет https://github.com/micsel/generate-trusted-ssl-certificate

generate.sh

#!bin/bash

if [ ! -d $PWD/certificates ]; then
  mkdir -p $PWD/certificates;
fi
openssl req \
  -newkey rsa:2048 \
  -x509 \
  -nodes \
  -keyout certificates/server.key \
  -new \
  -out certificates/server.crt \
  -config ./openssl-custom.cnf \
  -sha256 \
  -days 365

openssl req \
  -newkey rsa:2048 \
  -x509 \
  -nodes \
  -keyout certificates/key.pem \
  -new \
  -out certificates/cert.pem \
  -config ./openssl-custom.cnf \
  -sha256 \
  -days 365

OpenSSL-custom.cnf

[req]
default_bits = 2048
prompt = no
default_md = sha256
x509_extensions = v3_req
distinguished_name = dn

[dn]
C = UK
L = Olathe
O = Dev
OU = Dev Department
emailAddress = youremail@yourdomain.com
CN = localhost

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = *.localhost
DNS.2 = localhost
0 голосов
/ 19 ноября 2018

Может быть проще всего использовать EasyRSA, таким образом вы настраиваете ЦС, и тогда вы можете подписать столько сертификатов, сколько вам нужно, и получить ключ, который вы можете вставить в свои клиенты, чтобы они перестали жаловаться на самоподписанный сертификат.

Распространяется с OpenVPN, но может легко использоваться без OpenVPN.

Просто помните, что современные браузеры хотят SAN (Subject Alternate Name), они становятся несчастными, если есть только CN (Common Name).

https://github.com/OpenVPN/easy-rsa

Как:

  • установите ваши переменные в файле vars

  • Инициализировать pki:

    ./easyrsa init-pki

  • Сборка rootCA:

    ./easyrsa build-ca

  • Генерация ключа и сертификата за один раз для example.com также для подстановочного знака

    ./easyrsa --subject-alt-name=DNS:example.com,DNS:\*.example.com build-server-full example.com nopass

Ключи и сертификаты будут находиться в дереве в подкаталоге pki.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...