XCA(1)
β¨ XCA(1) β¨
okay bestie, listen up β this is the manual page for xca, from the General Commands Manual, and it's genuinely iconic. We're talking X Certificate and key management, and it's a whole GUI for handling X509 certificates, RSA/DSA/EC keys, PKCS#10 Requests and CRLs in Software and on Smartcards. no cap. π
πΈ NAME πΈ
xca β X Certificate and key management π
A GUI for handling X509 certificates, RSA/DSA/EC keys, PKCS#10 Requests and CRLs in Software and on Smartcards.
π¦ SYNOPSIS π¦
xca [OPTIONS]
β¨ DESCRIPTION β¨
Okay so this app is lowkey doing the MOST, and we love her for it. This application is intended as CA, certificate- and Key store. She uses a SQL database to store the items. By default this is SQLite3, but MySQL and PostrgreSQL are also tested and supported. π
Known types are Certificate signing requests (PKCS#10), Certificates (X509v3), RSA, DSA and EC keys and Certificate revocation lists. The signing of requests, and the creation of self-signed certificates is supported. Both can use templates for simplicity. The PKI structures can be imported and exported in several formats like PKCS#12, PEM, DER, PKCS#8, PKCS#7. XCA enables users to manage smartcards via the PKCS#11 interface. π
π OPTIONS π
--crlgen=<ca-identifier>*β Generate CRL for<ca>. Use the'name'option to set the internal name of the new CRL.--database=<database>β File name (*.xdb) of the SQLite database or a remote database descriptor:[user@host/TYPE:dbname#prefix].--exitβ Exit after importing items.--helpβ Print this help and exit.--hierarchy=<directory>*β Save OpenSSL index hierarchy in<dir>.--index=<file>*β Save OpenSSL index in<file>.--import*β Import all provided items into the database.--import-names*β A semicolon separated list of names applied to the imported items in the order found in the PEM file and on the commandline.--issuers*β Print all known issuer certificates that have an associated private key and the CA basic constraints set to'true'.--keygen=<type>*β Generate a new key and import it into the database. Use the'name'option to set the internal name of the new key. The<type>parameter has the format:'[RSA|DSA|EC]:[<size>|<curve>].--list-curvesβ Prints all known Elliptic Curves.--list-items*β List all items in the database.--name=<internal-name>*β Provides the name of new generated items. An automatic name will be generated if omitted.--no-native-dialogsβ Disables the native dialogs of the operating system for messages and file operations and uses Qt specific dialogs instead.--no-guiβ Do not start the GUI. Alternatively set environment variableXCA_NO_GUI=1or callxcaas'xca-console'symlink.--password=<password>β Database password for unlocking the database. See below for password format options.--pemβ Print PEM representation of provided files. Prints only the public part of private keys.--pem-fileβ Specify a file name for the PEM data. Implies'--pem'.--printβ Print a synopsis of provided files.--select=<id-list>*β Selects all items in the comma separated id-list to be shown with'print','text'or'pem'.--sqlpass=<password>β Password to access the remote SQL server. See below for password format options.--textβ Print the content of provided files as OpenSSL does.--verboseβ Print debug log on stderr. Same as settingXCA_DEBUG=all. SeeXCA_DEBUG--versionβ Print version information and exit.
π«Ά psst β Options marked with an asterisk need a database. Either from the commandline or as default database. don't forget her!!
π PASS PHRASE ARGUMENTS π
The password options accept the same syntax as openssl does: π
env:varβ Obtain the password from the environment variable var. Since the environment of other processes is visible on certain platforms (e.g.psunder certain Unix OSes) this option should be used with caution.fd:numberβ Read the password from the file descriptor number. This can be used to send the data via a pipe for example.file:pathnameβ The first line of pathname is the password. If the same pathname argument is supplied to password and sqlpassword arguments then the first line will be used for both passwords. pathname need not refer to a regular file: it could for example refer to a device or named pipe.pass:passwordβ The actual password is password. Since the password is visible to utilities (like'ps'under Unix) this form should only be used where security is not important.stdinβ Read the password from standard input.
π bestie please be careful withenv:varandpass:passwordβ they're giving "everyone can see your secrets" energy. security girlies stay safe.
π ENVIRONMENT VARIABLES π
Some more or less useful environment variables are evaluated by xca β¨
XCA_NO_GUI=1β Do not start the graphical user interface forcefully. Same as--no-guiargument. If both were not given, XCA tries to be smart and looks at the other arguments to judge whether to start the GUI or not.XCA_DEBUG=<pattern>β The environment variableXCA_DEBUGcontrols the dynamic debugging. The format is a comma separate list of pattern. Each pattern is:
all|[-]<function>|[-]<filename>:<firstline>[-<lastline>]
A leading dash skips the match. The firstline and lastline may be empty and will be replaced by the first and last line of the file. If -<lastline> is omitted then only the exact line number of lastline is matched.
Example: XCA_DEBUG=all,-timerEvent β Log everything but skip the annoying timerEvent messages.
Example: XCA_DEBUG=pki_base.cpp:100-,-pki_base.cpp:340 β Log pki_base Messages from line 100 up to the last line, except line 340.
XCA_ABORT_ON_WARNING=1β Developer option to crash into debugger in case of a warning-level log message. Documented for completeness. Not useful for non-developersXCA_PORTABLE=1β Force the windows portable mode. Documented for completeness. Not useful for non-developersXCA_ARGUMENTS=<man|rst|completion>β Outputs the commandline arguments in man-page nroff, sphinx rst or as oneline list for command-completion to automatically update the documentation if new arguments are added.XCA_QPSQL_OPTIONSXCA_QMYSQL_OPTIONSXCA_QODBC_OPTIONSβ Additional connection options for the SQL database drivers as described inhttps://doc.qt.io/qt-5/qsqldatabase.html#setConnectOptionslikeQPSQL_OPTIONS=requiressl=1
β SEE ALSO β
A more detailed HTML documentation can be found in the doc directory, in the "Help" menu of the application or on https://hohnstaedt.de/documentation π¦
π AUTHOR π
This manual page was written by Christian Hohnstaedt <christian@hohnstaedt.de> π
and that's the whole thing, bestie β we ate and left no crumbs. πΈ this page lives in the General Commands Manual as XCA(1), so if you ever forget all of this, you know exactly where to find her. periodt. π
π«Ά
π¦ where this page comes from
- alpine 3.24: xca-doc 2.9.0-r0 Β· BSD-3-Clause
- arch rolling: xca 2.9.0-2 Β· BSD-3-Clause
- debian trixie: xca 2.8.0-1 Β· BSD-3-Clause
- fedora 43: xca 2.9.0-1.fc43 Β· LicenseRef-Callaway-BSD
- fedora 44: xca 2.9.0-2.fc44 Β· LicenseRef-Callaway-BSD
- nixos 26.05: xca 2.9.0
- nixpkgs unstable: xca 2.9.0
- ubuntu questing: xca 2.9.0-1
- ubuntu resolute: xca 2.9.0-1build1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms