@The_Immortal

Создание самоподписанного сертификата?

Неприлично долго пытаюсь побороть создание корректного самоподписанного сертификата.

При попытке достучаться к локальному сайту по https получаю
ERR_SSL_KEY_USAGE_INCOMPATIBLE
- сиё выдает и MS Edge и Google Chrome на Win 11.

Нашел решение связанное с корректным указанием keyUsage (также об этом пишут на MS-ресурсе).
Генерирую ключ-сертификат из-под WSL2 (Ubuntu 22.04.5 LTS):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nextcloud.key -out nextcloud.crt -config nextcloud.cnf -extensions v3_req

nextcloud.cnf
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
# C = US
# ST = California
# L = Los Angeles
# O = Internet Corporation for Assigned Names and Numbers
# OU = IT Operations
CN = nextcloud.local

[v3_req]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = nextcloud.local
IP.1 = 172.26.223.13

Импортирую сертификат на Win.
И по итогу при доступе к https://nextcloud.local все равно имею ту ошибку.

Подскажите, пожалуйста, где косяк?

UPD
Nextcloud поднят на WSL через docker.
docker-compose.yml
version: '3'

services:
  db:
    image: mariadb
    container_name: nextcloud_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example_root_password
      MYSQL_PASSWORD: example_password
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
    volumes:
      - db_data:/var/lib/mysql

  app:
    image: nextcloud
    container_name: nextcloud_app
    restart: always
    environment:
      MYSQL_PASSWORD: example_password
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_HOST: db
    volumes:
      - nextcloud_data:/var/www/html
    depends_on:
      - db

  proxy:
    image: nginx
    container_name: nginx_proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./certs:/etc/nginx/certs
      - ./nginx.conf:/etc/nginx/nginx.conf
      - nextcloud_data:/var/www/html
    depends_on:
      - app

volumes:
  db_data:
  nextcloud_data:

В /certs находятся сгенерированные nextcloud.key и nextcloud.crt

nginx.conf
events {}

http {
    server {
        listen 80;
        server_name nextcloud.local;

        location / {
            proxy_pass http://nextcloud_app;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

    server {
        listen 443 ssl;
        server_name nextcloud.local;

        ssl_certificate /etc/nginx/certs/nextcloud.crt;
        ssl_certificate_key /etc/nginx/certs/nextcloud.key;

        location / {
            proxy_pass http://nextcloud_app;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 2
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Что-то мне подсказывает, что Вы получаете результатом выполнения Вашей команды - CSR, а вовсе не сертификат :) Откройте файл сертификата текстовым редактором - что видите? вот так
-----BEGIN CERTIFICATE REQUEST-----
или вот так
-----BEGIN CERTIFICATE-----?
Ответ написан
@SunTechnik
По Вашему тексте непонятно, где запущен nextcloud, на Windows или Ubuntu.

В списке шагов нет собственно настройки nextcloud на использование данного сертификата.

Порядок установки сертификата зависит от того, есть ли reverseproxy перед nextcloud, какой web сервер используется, на чем все запущено...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы