ssl_crtd (8) - Linux Manuals

ssl_crtd: SSL certificate generator for Squid.


ssl_crtd - SSL certificate generator for Squid.

Version 1.0


ssl_crtd [-dhv] ssl_crtd [-d] -s directory [-M size ] ssl_crtd [-d] -c -s directory [-n] serial number ssl_crtd [-d] -g -s directory


ssl_crtd is an installed binary.

Because the generation and signing of SSL certificates takes time Squid must use external process to handle the work. This process generates new SSL certificates and uses a disk cache of certificatess to improve response times on repeated requests. Communication occurs via TCP sockets bound to the loopback interface.


-b fs_block_size
File system block size in bytes. Needed for processing natural size of certificate on disk. Default value is 2048 bytes.
Initialize the SSL storage database and exit. Requires the -s option to determine the storage location being created.
Write debug info to stderr.
Display the current serial number using stderr and exit. Requires -s option to determine which storage directory the serial is located in.
Display the binary help and command line syntax info using stderr.
-s directory
Directory path of disk storage for new SSL certificates.
-M size
Maximum size of SSL certificate disk storage.
-n serial number
HEX serial number to use when initializing an SSL storage database. The default value of serial number is the number of seconds since Epoch minus 1200000000.
Display the binary version details using stderr.


SSL errors after changing the CA

Certificates are stored in this database in signed form. After any change to the signing CA in squid.conf be sure to erase and re-initialize the certificate database.

Certificate chaining

The version 1.0 of this helper will not add chained intermediate CA certificates. The client must have a full chain of trust from the root CA all the way down to the end certificate generated by this program. Signing with an intermediate CA needs to install both the root and the intermediate public CA on the clients.


Before this helper can be used the storage area for new certificates must be initialized manually. This is done from the command line using the -c parameters.

For example:

ssl_crtd -c -s /var/lib/ssl_db

Certificates are stored in this database in signed form. After any change to the signing CA in squid.conf be sure to erase and re-initialize the certificate database.

For simple configuration the helper defaults can be used. Only HTTP listening port options are required to enable generation and set the signign CA certificate. For Example:

http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/local/squid/ssl_cert/

For more customized configuration the helper certificate storage directory location and size can be altered with the sslcrtd_program configuration directive. For example:

sslcrtd_program /usr/local/squid/libexec/ssl_crtd -s /usr/local/squid/var/lib/ssl_db -M 4MB sslcrtd_children 5


This program was written by Christos Tsantilas <christos [at]>

This manual was written by Christos Tsantilas <christos [at]> Amos Jeffries <squid3 [at]>


 Copyright (C) 1996-2016 The Squid Software Foundation and contributors
 Squid software is distributed under GPLv2+ license and includes
 contributions from numerous individuals and organizations.
 Please see the COPYING and CONTRIBUTORS files for details.


Questions on the usage of this program can be sent to the Squid Users mailing list <squid-users [at]>


Bug reports need to be made in English. See for details of what you need to include with your bug report.

Report bugs or bug fixes using

Report serious security bugs to Squid Bugs <squid-bugs [at]>

Report ideas for new improvements to the Squid Developers mailing list <squid-dev [at]>


squid(8), GPL(7),
The Squid FAQ wiki
The Squid Configuration Manual