configtest: complain when ssl keys are not readable
This commit is contained in:
parent
5b1efaee67
commit
affa03b277
@ -95,19 +95,42 @@ ConfSSL_Init(void)
|
|||||||
array_free_wipe(&Conf_SSLOptions.KeyFilePassword);
|
array_free_wipe(&Conf_SSLOptions.KeyFilePassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
can_open(const char *name, const char *file)
|
||||||
|
{
|
||||||
|
FILE *fp = fopen(file, "r");
|
||||||
|
if (fp)
|
||||||
|
fclose(fp);
|
||||||
|
else
|
||||||
|
fprintf(stderr, "ERROR: %s \"%s\": %s\n",
|
||||||
|
name, file, strerror(errno));
|
||||||
|
return fp != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static bool
|
||||||
ConfSSL_Puts(void)
|
ConfSSL_Puts(void)
|
||||||
{
|
{
|
||||||
if (Conf_SSLOptions.KeyFile)
|
bool ret = true;
|
||||||
|
|
||||||
|
if (Conf_SSLOptions.KeyFile) {
|
||||||
printf( " SSLKeyFile = %s\n", Conf_SSLOptions.KeyFile);
|
printf( " SSLKeyFile = %s\n", Conf_SSLOptions.KeyFile);
|
||||||
if (Conf_SSLOptions.CertFile)
|
ret = can_open("SSLKeyFile", Conf_SSLOptions.KeyFile);
|
||||||
|
}
|
||||||
|
if (Conf_SSLOptions.CertFile) {
|
||||||
printf( " SSLCertFile = %s\n", Conf_SSLOptions.CertFile);
|
printf( " SSLCertFile = %s\n", Conf_SSLOptions.CertFile);
|
||||||
if (Conf_SSLOptions.DHFile)
|
if (!can_open("SSLCertFile", Conf_SSLOptions.CertFile))
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
if (Conf_SSLOptions.DHFile) {
|
||||||
printf( " SSLDHFile = %s\n", Conf_SSLOptions.DHFile);
|
printf( " SSLDHFile = %s\n", Conf_SSLOptions.DHFile);
|
||||||
|
if (!can_open("SSLDHFile", Conf_SSLOptions.DHFile))
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
if (array_bytes(&Conf_SSLOptions.KeyFilePassword))
|
if (array_bytes(&Conf_SSLOptions.KeyFilePassword))
|
||||||
puts(" SSLKeyFilePassword = <secret>" );
|
puts(" SSLKeyFilePassword = <secret>" );
|
||||||
array_free_wipe(&Conf_SSLOptions.KeyFilePassword);
|
array_free_wipe(&Conf_SSLOptions.KeyFilePassword);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -245,7 +268,8 @@ Conf_Test( void )
|
|||||||
#ifdef SSL_SUPPORT
|
#ifdef SSL_SUPPORT
|
||||||
fputs(" SSLPorts = ", stdout);
|
fputs(" SSLPorts = ", stdout);
|
||||||
ports_puts(&Conf_SSLOptions.ListenPorts);
|
ports_puts(&Conf_SSLOptions.ListenPorts);
|
||||||
ConfSSL_Puts();
|
if (!ConfSSL_Puts())
|
||||||
|
config_valid = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pwd = getpwuid( Conf_UID );
|
pwd = getpwuid( Conf_UID );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user