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

Я создал самозаверяющий сертификат для 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.

  • изменить размер корневого тома с ошибкой пространства lvextend
  • Установка noip с помощью скрипта sh
  • Запуск модулей ядра VirtualBox ... не удалось
  • Кто приостанавливает мои программы, когда я переключаюсь на другую сессию X?
  • Переменная окружения для ip-адреса
  • git diff - прослушивание нажатия клавиши
  • Назначить другой ip для каждого клиента .ovpn? OpenVPN
  • Меню загрузки, не показывающее Ubuntu 12.04, установленное рядом с Ubuntu 14.04 и Windows 8.1
  • One Solution collect form web for “Невозможно использовать самоподписанный сертификат. на локальном хосте”

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

    Или:

    1. Получите ваш CSR, подписанный доверенным центром сертификации, вместо самоподписывания ( Let's Encrypt является бесплатным и доверяет почти каждому хранилищу доверенных сертификатов из-за того, что он имеет корневой сертификат) или
    2. Добавьте свой сертификат в хранилище доверия системы или
    3. Используйте --cacert <your cert> чтобы доверять только этому сертификату, или
    4. Использовать curl -k (Не рекомендуется, так как проверка не производится)
    Interesting Posts

    Экран блокируется до возобновления

    Изменение разрешений

    Говорит ли BTRFS, что мой жесткий диск мертв?

    Потеряна загрузка Win7 после установки UBUNTU Vivid

    Удален рабочий стол GNOME, не удается подключиться к Интернету с терминала

    Различные разделы загрузки для двойной загрузки

    Использование ожидается, чтобы отправить Ctrl + D в telnet-соединение

    Неверная эмблема, используемая для PDF-файлов, созданных LibreOffice

    перезаписать данные раздела ext4 без предварительного удаления

    Создание пользователя, который не может получить интерактивную оболочку

    Использование акций Samba без использования Winbind

    Скрипт для открытия файла в уже существующем emacs-процессе

    Сценарий проверки установленного пакета debian – обработка ошибок?

    Есть ли какая-либо команда unix, которая не выполняет системный вызов во время выполнения?

    Только фиктивный выход доступен для аудио на linux

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