Каждый сертификат корневого CA самоподписан; доверенный корневой сертификат отличается от ошибки «self-signed certificate» только тем, есть ли он в хранилище проверяющей стороны. Самоподписанный сертификат сервера защищает шифрованием от пассивного прослушивания, но не обеспечивает аутентификацию, если клиенты не закрепили или не установили его; поэтому браузеры показывают NET::ERR_CERT_AUTHORITY_INVALID, а инструменты сообщают self-signed certificate.
Для разработки локальный частный CA (mkcert, step-ca или несколько команд OpenSSL) подходит лучше, чем отдельные самоподписанные конечные сертификаты: вы устанавливаете один корневой сертификат и выпускаете полноценные сертификаты с SAN для каждого хоста. Никогда не отключайте проверку в коде (verify=False, rejectUnauthorized: false, InsecureSkipVerify), чтобы заставить такой сертификат работать.
Полезная команда: openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes -keyout key.pem -out cert.pem -days 30 -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,IP:127.0.0.1".