Public bug reported:

mysql-8.0 is failing to enable SSL on a fresh install if the running
environment has FIPS enabled.

This can be easily reproduced in a cloud image that has fips enabled,
like https://azuremarketplace.microsoft.com/en-
us/marketplace/apps/canonical.0001-com-ubuntu-pro-focal-fips

If you deploy that instance, then install mysql, it won't enable ssl:

2022-05-05T20:00:26.839411Z 0 [Warning] [MY-013595] [Server] Failed to 
initialize TLS for channel: mysql_main. See below for the description of exact 
issue.
2022-05-05T20:00:26.839694Z 0 [Warning] [MY-010069] [Server] Failed to set up 
SSL because of the following SSL library error: SSL_CTX_new failed
2022-05-05T20:00:26.886806Z 0 [Warning] [MY-011302] [Server] Plugin mysqlx 
reported: 'Failed at SSL configuration: "SSL_CTX_new failed"'
2022-05-05T20:00:26.887367Z 0 [System] [MY-011323] [Server] X Plugin ready for 
connections. Bind-address: '127.0.0.1' port: 33060, socket: 
/var/run/mysqld/mysqlx.sock
2022-05-05T20:00:26.887679Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: 
ready for connections. Version: '8.0.29-0ubuntu0.20.04.3'  socket: 
'/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu).

I then create a user, to login via tcp/ip:

CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'secret';

And attempt it, but it's rejected because ssl is not used:
# mysql -uubuntu -h 127.0.0.1 -p
Enter password: 
ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported 
error: Authentication requires secure connection.


The fix is to tell mysql it should run in fips mode. I do that in 
/etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld]
ssl-fips-mode=on

Restart, and this time the logs are happier. There is just a warning about ssl, 
but it's enabled:
2022-05-05T20:03:56.490394Z 0 [Warning] [MY-013245] [Server] The SSL library 
function CRYPTO_set_mem_functions failed. This is typically caused by the SSL 
library already being used. As a result the SSL memory allocation will not be 
instrumented.
2022-05-05T20:03:56.493941Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld 
(mysqld 8.0.29-0ubuntu0.20.04.3) starting as process 6722
2022-05-05T20:03:56.506555Z 1 [System] [MY-013576] [InnoDB] InnoDB 
initialization has started.
2022-05-05T20:03:56.874520Z 1 [System] [MY-013577] [InnoDB] InnoDB 
initialization has ended.
2022-05-05T20:03:57.168472Z 0 [Warning] [MY-010068] [Server] CA certificate 
ca.pem is self signed.
2022-05-05T20:03:57.168769Z 0 [System] [MY-013602] [Server] Channel mysql_main 
configured to support TLS. Encrypted connections are now supported for this 
channel.

And we can confirm it, but only if we pass the same option to the mysql client:
# mysql -uubuntu -h 127.0.0.1 -p
Enter password: 
ERROR 2026 (HY000): SSL connection error: SSL_CTX_new failed


# mysql -uubuntu -h 127.0.0.1 -p --ssl-fips-mode=on
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
...

Note the SSL bit:
mysql> \s
--------------
mysql  Ver 8.0.29-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

Connection id:          9
Current database:
Current user:           ubuntu@localhost
SSL:                    Cipher in use is TLS_AES_256_GCM_SHA384
...


All in all, a configuration change makes this work, but the experience should 
be better out of the box. What can be done to improve this?
- documentation?
- have mysql detect a fips environment and auto-adjust?
- something else?

** Affects: mysql-8.0 (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: server-triage-discuss

** Tags added: server-triage-discuss

** Summary changed:

- Failure to enable SSO out of the box when in fips mode
+ Failure to enable SSL out of the box when in fips mode

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1971788

Title:
  Failure to enable SSL out of the box when in fips mode

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/1971788/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to