Невозможно использовать самоподписанный сертификат. на локальном хосте

Я создал самозаверяющий сертификат для localhost для тестирования следующим образом:

openssl genrsa -out key.pem 2048 openssl req -new -key key.pem -out certificate.csr openssl x509 -req -in certificate.csr -signkey key.pem -out certificate.pem 

Я указал «localhost» в FQDN. Вот и все, я еще ничего не сделал и не скопировал их нигде, и все 3 файла находятся в каталоге моего приложения.

Когда я запускаю веб-сервер, который не является apache или nginx на localhost, я получаю следующую ошибку:

 $ curl -v https://localhost:3345 * Rebuilt URL to: https://localhost:3345/ * Trying ::1... * connect to ::1 port 3345 failed: Connection refused * Trying 127.0.0.1... * Connected to localhost (127.0.0.1) port 3345 (#0) * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none * TLSv1.2 (OUT), TLS header, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (OUT), TLS alert, Server hello (2): * SSL certificate problem: self signed certificate * Closing connection 0 * TLSv1.2 (OUT), TLS alert, Client hello (1): curl: (60) SSL certificate problem: self signed certificate More details here: https://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option. 

Если это имеет значение, вот мой код:

 startApp = do let port = 3345 print $ "Listening the port " ++ (show port) ++ " ..." let tls = tlsSettings "certificate.pem" "key.pem" runTLS tls (setPort port defaultSettings) app 

Итак, вы видите, что я использую «pem» и «pem», а не «csr» и порт 3345.

Я нахожусь на Arch, но мне также нужно решение для Ubuntu.

Как я могу исправить ошибку?

Обратите внимание, что в браузере у меня также есть ошибка. В частности, в FF:

The owner of localhost has configured their website improperly. To protect your information from being stolen, Firefox has not connected to this website.

One Solution collect form web for “Невозможно использовать самоподписанный сертификат. на локальном хосте”

Curl использует хранилище доверия вашей системы, чтобы установить доверие цепей сертификатов по умолчанию. Это хранилище доверия содержит список доверенных сертификатов CA. Поскольку вы сами подписались и не используете цепочку, которая ведет к сертификату CA в хранилище доверия, завиток терпит неудачу в вашем запросе, потому что он не доверяет вашей цепочке.

Или:

  1. Получите ваш CSR, подписанный доверенным центром сертификации, вместо самоподписывания ( Let's Encrypt является бесплатным и доверяет почти каждому хранилищу доверенных сертификатов из-за того, что он имеет корневой сертификат) или
  2. Добавьте свой сертификат в хранилище доверия системы или
  3. Используйте --cacert <your cert> чтобы доверять только этому сертификату, или
  4. Использовать curl -k (Не рекомендуется, так как проверка не производится)
  • Моя система постоянно загружает и загружает с той же скоростью. Что это значит?
  • Как преобразовать эти данные в читаемый человеком формат
  • Ubuntu 16.04 - проблема DNS при пробуждении ноутбука из режима приостановки
  • Распределение Linux с менеджером пакетов «yum»
  • Скопировать initramfs в определенное место после сборки?
  • Какой хороший текстовый редактор с поддержкой RTL (справа налево)?
  • Как установить файловую систему zfs на другую файловую систему zfs в ubuntu 16.04
  • Как просматривать и воспроизводить файлы .mov на Ubuntu 16.04 LTS
  • Перенос всей группы томов LVM2 на RAID5
  • Способы обновления Ubuntu (debian-based distros) в автономном режиме
  • Поиск файлов, которые используют наибольшее дисковое пространство
  • Interesting Posts

    В чем причина того, что функция lseek возвращает дескрипторы файлов как длинные целые числа?

    Что происходит, когда вы удаляете жесткую ссылку?

    О пользователе ulimit / setrlimit и cgroup

    Отсутствует менеджер сети в Kali Linux?

    WD MyBook 3TB – восстановление Gparted и восстановление жестких дисков?

    как раздел для двойной загрузки OpenSuSE

    cpulimit не обнаруживает процесс Node.JS

    Linux не может компилироваться без оптимизации GCC; последствия?

    Установочный компакт-диск Remount Arch Linux для загрузки некоторых дополнительных пакетов

    узнайте, какой интерфейс я использую

    Автозапуск виртуальной машины VBoxHeadless при загрузке с помощью Upstart – init и Graceful exit

    Не удается запустить исполняемый файл на Ubuntu, терминал ожидает sudo или дает ошибки, такие как «Недопустимый или неполный многобайтовый или широкий символ»,

    Насколько похожи Android и QNX?

    Сервисный скрипт вызывает другой скрипт с переменными

    Opensuse 13.1 Gnome Desktop Region & Language не открывается после установки ibus

    Linux и Unix - лучшая ОС в мире.