SSL_CTX_CONFIG(3ossl)

πŸ“¦ version 3.5.0, in opensuse-leap 16.0

πŸ’… SSL_CTX_CONFIG β€” configure SSL_CTX or SSL structure

okay bestie, welcome to the 3ossl manual page, this one's short and sweet and honestly kind of a hidden gem 🫢


✨ NAME ✨

SSL_CTX_config, SSL_config β€” configure SSL_CTX or SSL structure


πŸŽ€ SYNOPSIS πŸŽ€

#include <openssl/ssl.h>

int SSL_CTX_config(SSL_CTX *ctx, const char *name);
int SSL_config(SSL *s, const char *name);

πŸ¦‹ DESCRIPTION πŸ¦‹

So the way this works: SSL_CTX_config() and SSL_config() configure an SSL_CTX or an SSL structure using the configuration name. That's the whole vibe. name-based config, no cap.

And here's why it's iconic β€” by calling SSL_CTX_config() or SSL_config(), your app can do a whole bunch of complex tasks based on the contents of the configuration file, which greatly simplifies application configuration code. Literally such a glow-up for your codebase. ✨

There's also some future-proofing clout: your application can support configuration features in newer versions of OpenSSL automatically. main character energy fr fr πŸ‘‘

⚠️ heads up bestie β€” a configuration file must have been previously loaded, for example using CONF_modules_load_file(). Don't skip that step, it's giving prerequisites. See config(5) for details of the configuration file syntax. πŸ“

🌸 RETURN VALUES 🌸

SSL_CTX_config() and SSL_config() return 1 for success or 0 if an error occurred. That's it. 1 slays, 0 doesn't. πŸ’€


🌈 EXAMPLES 🌈

Say the file "config.cnf" contains the following:

testapp = test_sect

[test_sect]
# list of configuration modules

ssl_conf = ssl_sect

[ssl_sect]
server = server_section

[server_section]
RSA.Certificate = server-rsa.pem
ECDSA.Certificate = server-ecdsa.pem
Ciphers = ALL:!RC4

Then an application could call:

if (CONF_modules_load_file("config.cnf", "testapp", 0) <= 0) {
    fprintf(stderr, "Error processing config file\n");
    goto err;
}

ctx = SSL_CTX_new(TLS_server_method());

if (SSL_CTX_config(ctx, "server") == 0) {
    fprintf(stderr, "Error configuring server.\n");
    goto err;
}

In this example two certificates and the cipher list are configured without the need for any additional application code. Not a single extra line. the way that config file just does things β€” obsessed. 🧚


πŸ’œ SEE ALSO πŸ’œ

ssl(7), config(5), SSL_CONF_cmd(3), CONF_modules_load_file(3)


⭐ HISTORY ⭐

The SSL_CTX_config() and SSL_config() functions were added in OpenSSL 1.1.0. vintage but still serving. πŸŽ€


Copyright 2015-2020 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.


and that's the whole page bestie!! πŸ’– this was 3.5.0 and it's dated 2026-09-25 β€” go configure something cute, mwah 🫢✨

πŸ“¦ where this page comes from