SSL_CTX_SET_CERT_STORE(3) | Library Functions Manual | SSL_CTX_SET_CERT_STORE(3)

# NAME

`SSL_CTX_set_cert_store`, `SSL_CTX_set1_cert_store`, `SSL_CTX_get_cert_store` — manipulate X509 certificate verification storage

# SYNOPSIS

library “libssl” libcrypto
`#include <openssl/ssl.h>`

void
`SSL_CTX_set_cert_store`(SSL_CTX *ctx, X509_STORE *store);

void
`SSL_CTX_set1_cert_store`(SSL_CTX *ctx, X509_STORE *store);

X509_STORE *
`SSL_CTX_get_cert_store`(const SSL_CTX *ctx);

# DESCRIPTION

`SSL_CTX_set_cert_store`() sets the verification storage of ctx to or replaces it with store. If another X509_STORE object is currently set in ctx, it will be freed.

`SSL_CTX_set1_cert_store`() sets the verification storage of ctx to or replaces it with store. The store's reference count is incremented.

`SSL_CTX_get_cert_store`() returns a pointer to the current certificate verification storage.

In order to verify the certificates presented by the peer, trusted CA certificates must be accessed. These CA certificates are made available via lookup methods, handled inside the X509_STORE. From the X509_STORE the X509_STORE_CTX used when verifying certificates is created.

Typically the trusted certificate store is handled indirectly via using SSL_CTX_load_verify_locations(3). Using the `SSL_CTX_set_cert_store`() and `SSL_CTX_get_cert_store`() functions it is possible to manipulate the X509_STORE object beyond the SSL_CTX_load_verify_locations(3) call.

Currently no detailed documentation on how to use the X509_STORE object is available. Not all members of the X509_STORE are used when the verification takes place. So will, for example, the `verify_callback`() be overridden with the `verify_callback`() set via the SSL_CTX_set_verify(3) family of functions. This document must therefore be updated when documentation about the X509_STORE object and its handling becomes available.

# RETURN VALUES

`SSL_CTX_get_cert_store`() returns the current setting.

# SEE ALSO

ssl(3), SSL_CTX_load_verify_locations(3), SSL_CTX_set_verify(3), X509_STORE_new(3)

# HISTORY

`SSL_CTX_set_cert_store`() and `SSL_CTX_get_cert_store`() first appeared in SSLeay 0.8.1 and have been available since OpenBSD 2.4.

`SSL_CTX_set1_cert_store`() first appeared in OpenSSL 1.1.1 and has been available since OpenBSD 7.6.

June 8, 2025 | Debian