Неприлично долго пытаюсь побороть создание корректного самоподписанного сертификата.
При попытке достучаться к локальному сайту по 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.ymlversion: '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.confevents {}
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;
}
}
}