Я пытаюсь создать сертификат для использования с MySQL, и все работает нормально, если я использую алгоритм sha1. Если я добавлю ключ -sha256 или -sha384, я НЕ смогу подключиться к MySQL !. Я получаю такую ошибку: ОШИБКА 2026 (HY000): ошибка соединения SSL: ASN: неверное подтверждение другой подписи
Я нашел похожий вопрос Вот, но принято решение использовать -sha1. Я хочу использовать sha2, поскольку Microsoft, Google и Firefox больше не рекомендуют использовать sha1.
Это то, что я использую для создания ключей. Если я удалю переключатель -sha256, он отлично работает с sha1. Я также пробовал использовать 2048-битный ключ, та же проблема
openssl genrsa 4096 > ca-key.pem
openssl req -sha256 -new -x509 -nodes -days 10000 -key ca-key.pem -out ca-cert.pem
openssl req -sha256 -newkey rsa:4096 -days 10000 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -sha256 -in server-req.pem -days 10000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
openssl req -sha256 -newkey rsa:4096 -days 10000 -nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -sha256 -in client-req.pem -days 10000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
Сертификат проверяется без проблем
openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem
Результат:
server-cert.pem: OK
client-cert.pem: OK
my.cnf
[mysqld]
ssl = On
ssl-cipher = DHE-RSA-AES256-SHA
ssl-ca = /etc/mysql/ssl/ca-cert.pem
ssl-cert = /etc/mysql/ssl/server-cert.pem
ssl-key = /etc/mysql/ssl/server-key.pem
Использование MySQL 5.5.40
mysql>SELECT version()
5.5.40-0+wheezy1
Переменные SSL выглядят нормально
mysql> show variables like '%ssl%';
Variable_name Value
ssl_key /etc/mysql/ssl/server-key.pem
ssl_cipher DHE-RSA-AES256-SHA
ssl_cert /etc/mysql/ssl/server-cert.pem
ssl_capath
ssl_ca /etc/mysql/ssl/ca-cert.pem
have_ssl YES
have_openssl YES
Версия OpenSSL
~ $ openssl version
OpenSSL 1.0.1e 11 Feb 2013
Я решил эту проблему.
Я получал ошибку: ОШИБКА 2026 (HY000): ошибка соединения SSL: ASN: неверное подтверждение другой подписи когда я подключался к HeidiSQL версии 8.3.0.4694. Я не упомянул об этом, так как думал, что это не имеет отношения к делу.
Я попытался подключиться с помощью функций mysqli и ssl_set в PHP 5.6.2, и это сработало.
Значит, проблема была не в MySQL. Затем я установил HeidiSQL 9.0.0.4865, и он безупречно подключился с сертификатом с использованием sha256