|
1 | 1 | <?php
|
2 | 2 |
|
3 |
| -require '/etc/phpmyadmin/config.secret.inc.php'; |
| 3 | +require_once '/etc/phpmyadmin/config.secret.inc.php'; |
| 4 | +require_once '/etc/phpmyadmin/helpers.php'; |
4 | 5 |
|
5 | 6 | /* Ensure we got the environment */
|
6 | 7 | $vars = [
|
|
29 | 30 | 'PMA_SAVEDIR',
|
30 | 31 | 'PMA_SSL',
|
31 | 32 | 'PMA_SSLS',
|
| 33 | + 'PMA_SSL_DIR', |
| 34 | + 'PMA_SSL_VERIFY', |
| 35 | + 'PMA_SSL_VERIFIES', |
| 36 | + 'PMA_SSL_CA', |
| 37 | + 'PMA_SSL_CAS', |
| 38 | + 'PMA_SSL_CA_BASE64', |
| 39 | + 'PMA_SSL_CAS_BASE64', |
| 40 | + 'PMA_SSL_KEY', |
| 41 | + 'PMA_SSL_KEYS', |
| 42 | + 'PMA_SSL_KEY_BASE64', |
| 43 | + 'PMA_SSL_KEYS_BASE64', |
| 44 | + 'PMA_SSL_CERT', |
| 45 | + 'PMA_SSL_CERTS', |
| 46 | + 'PMA_SSL_CERT_BASE64', |
| 47 | + 'PMA_SSL_CERTS_BASE64', |
32 | 48 | ];
|
33 | 49 |
|
34 | 50 | foreach ($vars as $var) {
|
|
37 | 53 | $_ENV[$var] = $env;
|
38 | 54 | }
|
39 | 55 | }
|
| 56 | + |
| 57 | +if (! defined('PMA_SSL_DIR')) { |
| 58 | + define('PMA_SSL_DIR', $_ENV['PMA_SSL_DIR'] ?? '/etc/phpmyadmin/ssl'); |
| 59 | +} |
| 60 | + |
40 | 61 | if (isset($_ENV['PMA_QUERYHISTORYDB'])) {
|
41 | 62 | $cfg['QueryHistoryDB'] = (bool) $_ENV['PMA_QUERYHISTORYDB'];
|
42 | 63 | }
|
|
55 | 76 | $cfg['PmaAbsoluteUri'] = trim($_ENV['PMA_ABSOLUTE_URI']);
|
56 | 77 | }
|
57 | 78 |
|
| 79 | +if (isset($_ENV['PMA_SSL_CA_BASE64'])) { |
| 80 | + $_ENV['PMA_SSL_CA'] = decodeBase64AndSaveFiles($_ENV['PMA_SSL_CA_BASE64'], 'phpmyadmin-ssl-CA', 'pem', PMA_SSL_DIR); |
| 81 | +} |
| 82 | + |
| 83 | +/* Decode and save the SSL key from base64 */ |
| 84 | +if (isset($_ENV['PMA_SSL_KEY_BASE64'])) { |
| 85 | + $_ENV['PMA_SSL_KEY'] = decodeBase64AndSaveFiles($_ENV['PMA_SSL_KEY_BASE64'], 'phpmyadmin-ssl-CERT', 'cert', PMA_SSL_DIR); |
| 86 | +} |
| 87 | + |
| 88 | +/* Decode and save the SSL certificate from base64 */ |
| 89 | +if (isset($_ENV['PMA_SSL_CERT_BASE64'])) { |
| 90 | + $_ENV['PMA_SSL_CERT'] = decodeBase64AndSaveFiles($_ENV['PMA_SSL_CERT_BASE64'], 'phpmyadmin-ssl-CERT', 'cert', PMA_SSL_DIR); |
| 91 | +} |
| 92 | + |
| 93 | +/* Decode and save multiple SSL CA certificates from base64 */ |
| 94 | +if (isset($_ENV['PMA_SSL_CAS_BASE64'])) { |
| 95 | + $_ENV['PMA_SSL_CAS'] = decodeBase64AndSaveFiles($_ENV['PMA_SSL_CAS_BASE64'], 'phpmyadmin-ssl-CA', 'pem', PMA_SSL_DIR); |
| 96 | +} |
| 97 | + |
| 98 | +/* Decode and save multiple SSL keys from base64 */ |
| 99 | +if (isset($_ENV['PMA_SSL_KEYS_BASE64'])) { |
| 100 | + $_ENV['PMA_SSL_KEYS'] = decodeBase64AndSaveFiles($_ENV['PMA_SSL_KEYS_BASE64'], 'phpmyadmin-ssl-CERT', 'cert', PMA_SSL_DIR); |
| 101 | +} |
| 102 | + |
| 103 | +/* Decode and save multiple SSL certificates from base64 */ |
| 104 | +if (isset($_ENV['PMA_SSL_CERTS_BASE64'])) { |
| 105 | + $_ENV['PMA_SSL_CERTS'] = decodeBase64AndSaveFiles($_ENV['PMA_SSL_CERTS_BASE64'], 'phpmyadmin-ssl-KEY', 'key', PMA_SSL_DIR); |
| 106 | +} |
| 107 | + |
58 | 108 | /* Figure out hosts */
|
59 | 109 |
|
60 | 110 | /* Fallback to default linked */
|
|
66 | 116 | $verbose = [$_ENV['PMA_VERBOSE']];
|
67 | 117 | $ports = [$_ENV['PMA_PORT']];
|
68 | 118 | $ssls = [$_ENV['PMA_SSL']];
|
| 119 | + $ssl_verifies = [$_ENV['PMA_SSL_VERIFY']]; |
| 120 | + $ssl_cas = [$_ENV['PMA_SSL_CA']]; |
| 121 | + $ssl_keys = [$_ENV['PMA_SSL_KEY']]; |
| 122 | + $ssl_certs = [$_ENV['PMA_SSL_CERT']]; |
69 | 123 | } elseif (! empty($_ENV['PMA_HOSTS'])) {
|
70 | 124 | $hosts = array_map('trim', explode(',', $_ENV['PMA_HOSTS']));
|
71 | 125 | $verbose = array_map('trim', explode(',', $_ENV['PMA_VERBOSES']));
|
72 | 126 | $ports = array_map('trim', explode(',', $_ENV['PMA_PORTS']));
|
73 | 127 | $ssls = array_map('trim', explode(',', $_ENV['PMA_SSLS']));
|
| 128 | + $ssl_verifies = array_map('trim', explode(',', $_ENV['PMA_SSL_VERIFIES'])); |
| 129 | + $ssl_cas = array_map('trim', explode(',', $_ENV['PMA_SSL_CAS'])); |
| 130 | + $ssl_keys = array_map('trim', explode(',', $_ENV['PMA_SSL_KEYS'])); |
| 131 | + $ssl_certs = array_map('trim', explode(',', $_ENV['PMA_SSL_CERTS'])); |
74 | 132 | }
|
75 | 133 |
|
76 | 134 | if (! empty($_ENV['PMA_SOCKET'])) {
|
|
84 | 142 | if (isset($ssls[$i - 1]) && $ssls[$i - 1] === '1') {
|
85 | 143 | $cfg['Servers'][$i]['ssl'] = $ssls[$i - 1];
|
86 | 144 | }
|
| 145 | + if (isset($ssl_verifies[$i - 1]) && $ssl_verifies[$i - 1] === '1') { |
| 146 | + $cfg['Servers'][$i]['ssl_verify'] = $ssl_verifies[$i - 1]; |
| 147 | + } |
| 148 | + if (isset($ssl_cas[$i - 1])) { |
| 149 | + $cfg['Servers'][$i]['ssl_ca'] = $ssl_cas[$i - 1]; |
| 150 | + } |
| 151 | + if (isset($ssl_keys[$i - 1])) { |
| 152 | + $cfg['Servers'][$i]['ssl_key'] = $ssl_keys[$i - 1]; |
| 153 | + } |
| 154 | + if (isset($ssl_certs[$i - 1])) { |
| 155 | + $cfg['Servers'][$i]['ssl_cert'] = $ssl_certs[$i - 1]; |
| 156 | + } |
87 | 157 | $cfg['Servers'][$i]['host'] = $hosts[$i - 1];
|
88 | 158 | if (isset($verbose[$i - 1])) {
|
89 | 159 | $cfg['Servers'][$i]['verbose'] = $verbose[$i - 1];
|
|
0 commit comments