[e7527b9] | 1 | % `mod_gnutls` Manual |
---|
[4ee45a1] | 2 | |
---|
| 3 | * * * * * |
---|
| 4 | |
---|
[bce7907] | 5 | `mod_gnutls` is a module for the Apache web server that provides HTTPS |
---|
| 6 | (HTTP over Transport Layer Security (TLS) or the older Secure Sockets |
---|
| 7 | Layer (SSL)) using the GnuTLS library. More information about the |
---|
| 8 | module can be found at [the project's website](https://mod.gnutls.org/). |
---|
[4ee45a1] | 9 | |
---|
| 10 | * * * * * |
---|
| 11 | |
---|
| 12 | Compilation & Installation |
---|
[2b16350] | 13 | ========================== |
---|
[4ee45a1] | 14 | |
---|
[e7527b9] | 15 | `mod_gnutls` uses the `./configure && make && make install` mechanism |
---|
| 16 | common to many Open Source programs. Most of the dirty work is |
---|
| 17 | handled by either `./configure` or Apache's `apxs` utility. If you have |
---|
| 18 | built Apache modules before, there shouldn't be any surprises for you. |
---|
| 19 | |
---|
| 20 | The interesting options you can pass to configure are: |
---|
| 21 | |
---|
| 22 | `--with-apxs=PATH` |
---|
| 23 | : This option is used to specify the location of the apxs utility that |
---|
| 24 | was installed as part of apache. Specify the location of the |
---|
| 25 | binary, not the directory it is located in. |
---|
| 26 | |
---|
[dc058b8] | 27 | `--with-apu-config=PATH` |
---|
| 28 | : Path to APR Utility Library config tool (`apu-1-config`) |
---|
[e7527b9] | 29 | |
---|
| 30 | `--help` |
---|
| 31 | : Provides a list of all available configure options. |
---|
[4ee45a1] | 32 | |
---|
[dff57b4] | 33 | It is recommended to run `make check` before installation. If your |
---|
| 34 | system doesn't have a loopback device with IPv6 and IPv4 support or |
---|
| 35 | `localhost` does not resolve to at least one of `[::1]` and |
---|
| 36 | `127.0.0.1`, you may have to set the `TEST_HOST` or `TEST_IP` |
---|
[dc058b8] | 37 | environment variables when running `./configure` to make the test |
---|
| 38 | suite work correctly. |
---|
| 39 | |
---|
[4ee45a1] | 40 | * * * * * |
---|
| 41 | |
---|
| 42 | Integration |
---|
[2b16350] | 43 | =========== |
---|
[4ee45a1] | 44 | |
---|
[2b16350] | 45 | To activate `mod_gnutls` just add the following line to your httpd.conf |
---|
[4ee45a1] | 46 | and restart Apache: |
---|
| 47 | |
---|
[2b16350] | 48 | LoadModule gnutls_module modules/mod_gnutls.so |
---|
[4ee45a1] | 49 | |
---|
| 50 | * * * * * |
---|
| 51 | |
---|
[2b16350] | 52 | Configuration Directives |
---|
| 53 | ======================== |
---|
[4ee45a1] | 54 | |
---|
[2b16350] | 55 | `GnuTLSEnable` |
---|
| 56 | -------------- |
---|
[4ee45a1] | 57 | |
---|
[2b16350] | 58 | Enable GnuTLS for this virtual host |
---|
[4ee45a1] | 59 | |
---|
[2b16350] | 60 | GnuTLSEnable [on|off] |
---|
[4ee45a1] | 61 | |
---|
[2b16350] | 62 | Default: *off*\ |
---|
| 63 | Context: virtual host |
---|
[4ee45a1] | 64 | |
---|
[2b16350] | 65 | This directive enables SSL/TLS Encryption for a Virtual Host. |
---|
[4ee45a1] | 66 | |
---|
[2b16350] | 67 | `GnuTLSCache` |
---|
| 68 | ------------- |
---|
[4ee45a1] | 69 | |
---|
[2b16350] | 70 | Configure SSL Session Cache |
---|
[4ee45a1] | 71 | |
---|
[2b16350] | 72 | GnuTLSCache [dbm|gdbm|memcache|none] [PATH|SERVERLIST|-] |
---|
[4ee45a1] | 73 | |
---|
[2b16350] | 74 | Default: `GnuTLSCache none`\ |
---|
| 75 | Context: server config |
---|
[4ee45a1] | 76 | |
---|
[2b16350] | 77 | This directive configures the SSL Session Cache for `mod_gnutls`. |
---|
| 78 | This could be shared between machines of different architectures. |
---|
[4ee45a1] | 79 | |
---|
[2b16350] | 80 | `dbm` (Requires Berkeley DBM) |
---|
| 81 | : Uses the default Berkeley DB backend of APR DBM to cache SSL |
---|
| 82 | Sessions results. The argument is a relative or absolute path to |
---|
| 83 | be used as the DBM Cache file. This is compatible with most |
---|
| 84 | operating systems, but needs the Apache Runtime to be compiled |
---|
| 85 | with Berkeley DBM support. |
---|
[4ee45a1] | 86 | |
---|
[2b16350] | 87 | `gdbm` |
---|
| 88 | : Uses the GDBM backend of APR DBM to cache SSL Sessions results. |
---|
[4ee45a1] | 89 | |
---|
[2b16350] | 90 | The argument is a relative or absolute path to be used as the DBM Cache |
---|
| 91 | file. This is the recommended option. |
---|
[4ee45a1] | 92 | |
---|
[2b16350] | 93 | `memcache` |
---|
| 94 | : Uses a memcached server to cache the SSL Session. |
---|
[4ee45a1] | 95 | |
---|
[2b16350] | 96 | The argument is a space separated list of servers. If no port |
---|
| 97 | number is supplied, the default of 11211 is used. This can be |
---|
| 98 | used to share a session cache between all servers in a cluster. |
---|
[4ee45a1] | 99 | |
---|
[2b16350] | 100 | `none` |
---|
| 101 | : Turns off all caching of SSL Sessions. |
---|
[4ee45a1] | 102 | |
---|
[2b16350] | 103 | This can significantly reduce the performance of `mod_gnutls` since |
---|
| 104 | even followup connections by a client must renegotiate parameters |
---|
| 105 | instead of reusing old ones. This is the default, since it |
---|
| 106 | requires no configuration. |
---|
[4ee45a1] | 107 | |
---|
[2b16350] | 108 | `GnuTLSCacheTimeout` |
---|
| 109 | -------------------- |
---|
[4ee45a1] | 110 | |
---|
[2b16350] | 111 | Timeout for SSL Session Cache expiration |
---|
[4ee45a1] | 112 | |
---|
[2b16350] | 113 | GnuTLSCacheTimeout SECONDS |
---|
[4ee45a1] | 114 | |
---|
[2b16350] | 115 | Default: `GnuTLSCacheTimeout 300`\ |
---|
| 116 | Context: server config |
---|
[4ee45a1] | 117 | |
---|
[2b16350] | 118 | Sets the timeout for SSL Session Cache entries expiration. This |
---|
| 119 | directive is valid even if Session Tickets are used, and indicates the |
---|
| 120 | expiration time of the ticket in seconds. |
---|
[4ee45a1] | 121 | |
---|
[2b16350] | 122 | `GnuTLSSessionTickets` |
---|
| 123 | ---------------------- |
---|
[4ee45a1] | 124 | |
---|
[2b16350] | 125 | Enable Session Tickets for the server |
---|
[4ee45a1] | 126 | |
---|
[2b16350] | 127 | GnuTLSSessionTickets [on|off] |
---|
[4ee45a1] | 128 | |
---|
[2b16350] | 129 | Default: `off`\ |
---|
| 130 | Context: server config, virtual host |
---|
[4ee45a1] | 131 | |
---|
| 132 | To avoid storing data for TLS session resumption it is allowed to |
---|
[2b16350] | 133 | provide client with a ticket, to use on return. Use for servers with |
---|
| 134 | limited storage, and don't combine with GnuTLSCache. For a pool of |
---|
| 135 | servers this option is not recommended since the tickets are unique |
---|
| 136 | for the issuing server only. |
---|
[4ee45a1] | 137 | |
---|
| 138 | |
---|
[2b16350] | 139 | `GnuTLSCertificateFile` |
---|
| 140 | ----------------------- |
---|
[4ee45a1] | 141 | |
---|
[2b16350] | 142 | Set to the PEM Encoded Server Certificate |
---|
[4ee45a1] | 143 | |
---|
[2b16350] | 144 | GnuTLSCertificateFile FILEPATH |
---|
[4ee45a1] | 145 | |
---|
[2b16350] | 146 | Default: *none*\ |
---|
| 147 | Context: server config, virtual host |
---|
[4ee45a1] | 148 | |
---|
| 149 | Takes an absolute or relative path to a PEM-encoded X.509 certificate to |
---|
| 150 | use as this Server's End Entity (EE) certificate. If you need to supply |
---|
| 151 | certificates for intermediate Certificate Authorities (iCAs), they |
---|
| 152 | should be listed in sequence in the file, from EE to the iCA closest to |
---|
| 153 | the root CA. Optionally, you can also include the root CA's certificate |
---|
| 154 | as the last certificate in the list. |
---|
| 155 | |
---|
[97c930f] | 156 | Since version 0.7 this can be a PKCS #11 URL. |
---|
| 157 | |
---|
[2b16350] | 158 | `GnuTLSKeyFile` |
---|
| 159 | --------------- |
---|
[4ee45a1] | 160 | |
---|
[eebc960] | 161 | Set to the PEM Encoded Server Private Key |
---|
[4ee45a1] | 162 | |
---|
[eebc960] | 163 | GnuTLSKeyFile FILEPATH |
---|
[4ee45a1] | 164 | |
---|
[2b16350] | 165 | Default: *none*\ |
---|
| 166 | Context: server config, virtual host |
---|
[4ee45a1] | 167 | |
---|
[97c930f] | 168 | Takes an absolute or relative path to the Server Private Key. Set |
---|
| 169 | `GnuTLSPIN` if the key file is encrypted. |
---|
| 170 | |
---|
| 171 | Since version 0.7 this can be a PKCS #11 URL. |
---|
[4ee45a1] | 172 | |
---|
| 173 | **Security Warning:**\ |
---|
[97c930f] | 174 | This private key must be protected. It is read while Apache is still |
---|
[4ee45a1] | 175 | running as root, and does not need to be readable by the nobody or |
---|
| 176 | apache user. |
---|
| 177 | |
---|
[2b16350] | 178 | `GnuTLSPGPCertificateFile` |
---|
| 179 | -------------------------- |
---|
[4ee45a1] | 180 | |
---|
[2b16350] | 181 | Set to a base64 Encoded Server OpenPGP Certificate |
---|
[4ee45a1] | 182 | |
---|
[2b16350] | 183 | GnuTLSPGPCertificateFile FILEPATH |
---|
[4ee45a1] | 184 | |
---|
[2b16350] | 185 | Default: *none*\ |
---|
| 186 | Context: server config, virtual host |
---|
[4ee45a1] | 187 | |
---|
| 188 | Takes an absolute or relative path to a base64 Encoded OpenPGP |
---|
| 189 | Certificate to use as this Server's Certificate. |
---|
| 190 | |
---|
[2b16350] | 191 | `GnuTLSPGPKeyFile` |
---|
| 192 | ------------------ |
---|
[4ee45a1] | 193 | |
---|
[2b16350] | 194 | Set to the Server OpenPGP Secret Key |
---|
[4ee45a1] | 195 | |
---|
[2b16350] | 196 | GnuTLSPGPKeyFile FILEPATH |
---|
[4ee45a1] | 197 | |
---|
[2b16350] | 198 | Default: *none*\ |
---|
| 199 | Context: server config, virtual host |
---|
[4ee45a1] | 200 | |
---|
| 201 | Takes an absolute or relative path to the Server Private Key. This key |
---|
| 202 | cannot currently be password protected. |
---|
| 203 | |
---|
| 204 | **Security Warning:**\ |
---|
| 205 | This private key must be protected. It is read while Apache is still |
---|
| 206 | running as root, and does not need to be readable by the nobody or |
---|
| 207 | apache user. |
---|
| 208 | |
---|
[2b16350] | 209 | `GnuTLSClientVerify` |
---|
| 210 | -------------------- |
---|
[4ee45a1] | 211 | |
---|
| 212 | Enable Client Certificate Verification\ |
---|
| 213 | |
---|
[2b16350] | 214 | GnuTLSClientVerify [ignore|request|require] |
---|
[4ee45a1] | 215 | |
---|
[2b16350] | 216 | Default: `ignore`\ |
---|
| 217 | Context: server config, virtual host, directory, .htaccess |
---|
[4ee45a1] | 218 | |
---|
| 219 | This directive controls the use of SSL Client Certificate |
---|
[2b16350] | 220 | Authentication. If used in the .htaccess context, it can force TLS |
---|
| 221 | re-negotiation. |
---|
[4ee45a1] | 222 | |
---|
[2b16350] | 223 | `ignore` |
---|
| 224 | : `mod_gnutls` will ignore the contents of any SSL Client Certificates |
---|
| 225 | sent. It will not request that the client sends a certificate. |
---|
[4ee45a1] | 226 | |
---|
[2b16350] | 227 | `request` |
---|
| 228 | : The client certificate will be requested, but not required. |
---|
| 229 | The Certificate will be validated if sent. The output of the |
---|
| 230 | validation status will be stored in the `SSL_CLIENT_VERIFY` |
---|
| 231 | environment variable and can be `SUCCESS`, `FAILED` or `NONE`. |
---|
[4ee45a1] | 232 | |
---|
[2b16350] | 233 | `require` |
---|
| 234 | : A Client certificate will be required. Any requests without a valid |
---|
| 235 | client certificate will be denied. The `SSL_CLIENT_VERIFY` |
---|
| 236 | environment variable will only be set to `SUCCESS`. |
---|
[4ee45a1] | 237 | |
---|
[2b16350] | 238 | `GnuTLSClientCAFile` |
---|
| 239 | -------------------- |
---|
[4ee45a1] | 240 | |
---|
[2b16350] | 241 | Set to the PEM Encoded Certificate Authority Certificate |
---|
[4ee45a1] | 242 | |
---|
[2b16350] | 243 | GnuTLSClientCAFile FILEPATH |
---|
[4ee45a1] | 244 | |
---|
[2b16350] | 245 | Default: *none* |
---|
| 246 | Context: server config, virtual host |
---|
[4ee45a1] | 247 | |
---|
| 248 | Takes an absolute or relative path to a PEM Encoded Certificate to use |
---|
[2b16350] | 249 | as a Certificate Authority with Client Certificate Authentication. |
---|
| 250 | This file may contain a list of trusted authorities. |
---|
[4ee45a1] | 251 | |
---|
[2b16350] | 252 | `GnuTLSPGPKeyringFile` |
---|
| 253 | ---------------------- |
---|
[4ee45a1] | 254 | |
---|
[2b16350] | 255 | Set to a base64 Encoded key ring |
---|
[4ee45a1] | 256 | |
---|
[2b16350] | 257 | GnuTLSPGPKeyringFile FILEPATH |
---|
[4ee45a1] | 258 | |
---|
[2b16350] | 259 | Default: *none*\ |
---|
| 260 | Context: server config, virtual host |
---|
[4ee45a1] | 261 | |
---|
[2b16350] | 262 | Takes an absolute or relative path to a base64 Encoded Certificate |
---|
| 263 | list (key ring) to use as a means of verification of Client |
---|
| 264 | Certificates. This file should contain a list of trusted signers. |
---|
[4ee45a1] | 265 | |
---|
[2b16350] | 266 | `GnuTLSDHFile` |
---|
| 267 | -------------- |
---|
[4ee45a1] | 268 | |
---|
[2b16350] | 269 | Set to the PKCS \#3 encoded Diffie Hellman parameters |
---|
[4ee45a1] | 270 | |
---|
[2b16350] | 271 | GnuTLSDHFile FILEPATH |
---|
[4ee45a1] | 272 | |
---|
[2b16350] | 273 | Default: *none*\ |
---|
| 274 | Context: server config, virtual host |
---|
[4ee45a1] | 275 | |
---|
[2b16350] | 276 | Takes an absolute or relative path to a PKCS \#3 encoded DH |
---|
| 277 | parameters.Those are used when the DHE key exchange method is enabled. |
---|
| 278 | You can generate this file using `certtool --generate-dh-params --bits |
---|
| 279 | 2048`. If not set `mod_gnutls` will use the included parameters. |
---|
[4ee45a1] | 280 | |
---|
[2b16350] | 281 | `GnuTLSSRPPasswdFile` |
---|
| 282 | --------------------- |
---|
[4ee45a1] | 283 | |
---|
[2b16350] | 284 | Set to the SRP password file for SRP ciphersuites |
---|
[4ee45a1] | 285 | |
---|
[2b16350] | 286 | GnuTLSSRPPasswdFile FILEPATH |
---|
[4ee45a1] | 287 | |
---|
[2b16350] | 288 | Default: *none*\ |
---|
| 289 | Context: server config, virtual host |
---|
[4ee45a1] | 290 | |
---|
[2b16350] | 291 | Takes an absolute or relative path to an SRP password file. This is |
---|
| 292 | the same format as used in libsrp. You can generate such file using |
---|
| 293 | the command `srptool --passwd /etc/tpasswd --passwd-conf |
---|
| 294 | /etc/tpasswd.conf -u test` to set a password for user test. This |
---|
| 295 | password file holds the username, a password verifier and the |
---|
| 296 | dependency to the SRP parameters. |
---|
[4ee45a1] | 297 | |
---|
[2b16350] | 298 | `GnuTLSSRPPasswdConfFile` |
---|
| 299 | ------------------------- |
---|
[4ee45a1] | 300 | |
---|
[2b16350] | 301 | Set to the SRP password.conf file for SRP ciphersuites |
---|
[4ee45a1] | 302 | |
---|
[2b16350] | 303 | GnuTLSSRPPasswdConfFile FILEPATH |
---|
[4ee45a1] | 304 | |
---|
[2b16350] | 305 | Default: *none*\ |
---|
| 306 | Context: server config, virtual host |
---|
[4ee45a1] | 307 | |
---|
[2b16350] | 308 | Takes an absolute or relative path to an SRP password.conf file. This |
---|
| 309 | is the same format as used in `libsrp`. You can generate such file |
---|
| 310 | using the command `srptool --create-conf /etc/tpasswd.conf`. This |
---|
| 311 | file holds the SRP parameters and is associate with the password file |
---|
| 312 | (the verifiers depends on these parameters). |
---|
[4ee45a1] | 313 | |
---|
[2b16350] | 314 | `GnuTLSPriorities` |
---|
| 315 | ------------------ |
---|
[4ee45a1] | 316 | |
---|
[2b16350] | 317 | Set the allowed ciphers, key exchange algorithms, MACs and compression |
---|
| 318 | methods |
---|
[4ee45a1] | 319 | |
---|
[5409165] | 320 | GnuTLSPriorities NORMAL:+CIPHER_0:+CIPHER_1:...:+CIPHER_N |
---|
[4ee45a1] | 321 | |
---|
[2b16350] | 322 | Default: *none*\ |
---|
| 323 | Context: server config, virtual host |
---|
[4ee45a1] | 324 | |
---|
[2b16350] | 325 | Takes a semi-colon separated list of ciphers, key exchange methods |
---|
| 326 | Message authentication codes and compression methods to enable. |
---|
| 327 | The allowed keywords are specified in the `gnutls_priority_init()` |
---|
| 328 | function of GnuTLS. |
---|
[4ee45a1] | 329 | |
---|
[5409165] | 330 | Full details can be found at [the GnuTLS documentation](http://gnutls.org/manual/html_node/Priority-Strings.html#Priority-Strings). |
---|
[2b16350] | 331 | In brief you can specify a set of ciphersuites from the choices: |
---|
[4ee45a1] | 332 | |
---|
[2b16350] | 333 | `NONE` |
---|
| 334 | : The empty list. |
---|
[4ee45a1] | 335 | |
---|
[2b16350] | 336 | `EXPORT` |
---|
| 337 | : A list with all the supported cipher combinations |
---|
| 338 | including the `EXPORT` strength algorithms. |
---|
[4ee45a1] | 339 | |
---|
[2b16350] | 340 | `PERFORMANCE` |
---|
| 341 | : A list with all the secure cipher combinations sorted in terms of performance. |
---|
[4ee45a1] | 342 | |
---|
[2b16350] | 343 | `NORMAL` |
---|
| 344 | : A list with all the secure cipher combinations sorted |
---|
| 345 | with respect to security margin (subjective term). |
---|
[4ee45a1] | 346 | |
---|
[2b16350] | 347 | `SECURE` |
---|
| 348 | : A list with all the secure cipher combinations including |
---|
| 349 | the 256-bit ciphers sorted with respect to security margin. |
---|
[4ee45a1] | 350 | |
---|
[2b16350] | 351 | Additionally you can add or remove algorithms using the `+` and `!` |
---|
| 352 | prefixes respectively. |
---|
[4ee45a1] | 353 | |
---|
[2b16350] | 354 | For example, in order to disable the `ARCFOUR` cipher from the `NORMAL` set |
---|
| 355 | you can use the string `NORMAL:!ARCFOUR-128` |
---|
[4ee45a1] | 356 | |
---|
[2b16350] | 357 | Other options such as the protocol version and the compression method |
---|
| 358 | can be specified using the `VERS-` and `COMP-` prefixes. |
---|
[4ee45a1] | 359 | |
---|
[2b16350] | 360 | So in order to remove or add a specific TLS version from the `NORMAL` |
---|
| 361 | set, use `NORMAL:!VERS-SSL3.0`. And to enable zlib compression use |
---|
| 362 | `NORMAL:+COMP-DEFLATE`. |
---|
[4ee45a1] | 363 | |
---|
| 364 | |
---|
[2b16350] | 365 | However it is recommended not to add compression at this level. With |
---|
| 366 | the `NONE` set, in order to be usable, you have to specify a complete |
---|
| 367 | set of combinations of protocol versions, cipher algorithms |
---|
| 368 | (`AES-128-CBC`), key exchange algorithms (`RSA`), message |
---|
| 369 | authentication codes (`SHA1`) and compression methods (`COMP-NULL`). |
---|
[4ee45a1] | 370 | |
---|
[2b16350] | 371 | You can find a list of all supported Ciphers, Versions, MACs, etc. by |
---|
| 372 | running `gnutls-cli --list`. |
---|
[4ee45a1] | 373 | |
---|
[2b16350] | 374 | The special keyword `%COMPAT` will disable some security features such |
---|
[4ee45a1] | 375 | as protection against statistical attacks to ciphertext data in order to |
---|
| 376 | achieve maximum compatibility (some broken mobile clients need this). |
---|
| 377 | |
---|
[8873a06] | 378 | `GnuTLSP11Module` |
---|
| 379 | ------------------ |
---|
| 380 | |
---|
[7764015] | 381 | Load this PKCS #11 module. |
---|
[8873a06] | 382 | |
---|
| 383 | GnuTLSP11Module PATH_TO_LIBRARY |
---|
| 384 | |
---|
| 385 | Default: *none*\ |
---|
| 386 | Context: server config |
---|
| 387 | |
---|
[9ca1f21] | 388 | Load this PKCS #11 provider module, instead of the system |
---|
| 389 | defaults. May occur multiple times to load multiple modules. |
---|
[8873a06] | 390 | |
---|
[031acac] | 391 | `GnuTLSPIN` |
---|
| 392 | ------------------ |
---|
| 393 | |
---|
| 394 | Set the PIN to be used to access encrypted key files or PKCS #11 objects. |
---|
| 395 | |
---|
| 396 | GnuTLSPIN XXXXXX |
---|
| 397 | |
---|
| 398 | Default: *none*\ |
---|
| 399 | Context: server config, virtual host |
---|
| 400 | |
---|
| 401 | Takes a string to be used as a PIN for the protected objects in |
---|
| 402 | a security module, or as a key to be used to decrypt PKCS #8, PKCS #12, |
---|
| 403 | or openssl encrypted keys. |
---|
| 404 | |
---|
| 405 | `GnuTLSSRKPIN` |
---|
| 406 | ------------------ |
---|
| 407 | |
---|
| 408 | Set the SRK PIN to be used to unlaccess the TPM. |
---|
| 409 | |
---|
| 410 | GnuTLSSRKPIN XXXXXX |
---|
| 411 | |
---|
| 412 | Default: *none*\ |
---|
| 413 | Context: server config, virtual host |
---|
| 414 | |
---|
| 415 | Takes a string to be used as a PIN for the protected objects in |
---|
| 416 | the TPM module. |
---|
| 417 | |
---|
[2b16350] | 418 | `GnuTLSExportCertificates` |
---|
| 419 | -------------------------- |
---|
[4ee45a1] | 420 | |
---|
[2b16350] | 421 | Export the PEM encoded certificates to CGIs |
---|
[4ee45a1] | 422 | |
---|
[999cdec] | 423 | GnuTLSExportCertificates [off|on|SIZE] |
---|
[4ee45a1] | 424 | |
---|
[2b16350] | 425 | Default: `off`\ |
---|
| 426 | Context: server config, virtual host |
---|
[4ee45a1] | 427 | |
---|
[999cdec] | 428 | This directive configures exporting the full certificates of the |
---|
| 429 | server and the client to CGI scripts via the `SSL_SERVER_CERT` and |
---|
| 430 | `SSL_CLIENT_CERT` environment variables. The exported certificates |
---|
| 431 | will be PEM-encoded (if X.509) or ASCII-armored (if OpenPGP) up to the |
---|
| 432 | size given. The type of the certificate will be exported in |
---|
| 433 | `SSL_SERVER_CERT_TYPE` and `SSL_CLIENT_CERT_TYPE`. |
---|
| 434 | |
---|
| 435 | SIZE should be an integer number of bytes, or may be written with a |
---|
| 436 | trailing `K` to indicate kibibytes. `off` means the same thing as |
---|
| 437 | `0`, in which case the certificates will not be exported to the |
---|
| 438 | environment. `on` is an alias for `16K`. If a non-zero size is |
---|
| 439 | specified for this directive, but a certificate is too large to fit in |
---|
| 440 | the buffer, then the corresponding environment variable will contain |
---|
| 441 | the fixed string `GNUTLS_CERTIFICATE_SIZE_LIMIT_EXCEEDED`. |
---|
| 442 | |
---|
[2b16350] | 443 | With GnuTLSExportCertificates enabled, `mod_gnutls` exports the same |
---|
| 444 | environment variables to the CGI process as `mod_ssl`. |
---|
[4ee45a1] | 445 | |
---|
[d8ae2a0] | 446 | |
---|
[a2e3c33] | 447 | `GnuTLSProxyEngine` |
---|
[d8ae2a0] | 448 | -------------- |
---|
| 449 | |
---|
| 450 | Enable TLS proxy connections for this virtual host |
---|
| 451 | |
---|
[a2e3c33] | 452 | GnuTLSProxyEngine [on|off] |
---|
[d8ae2a0] | 453 | |
---|
| 454 | Default: *off*\ |
---|
| 455 | Context: virtual host |
---|
| 456 | |
---|
| 457 | This directive enables support for TLS proxy connections for a virtual |
---|
| 458 | host. |
---|
| 459 | |
---|
| 460 | `GnuTLSProxyCAFile` |
---|
| 461 | -------------------- |
---|
| 462 | |
---|
[809c422] | 463 | Set to the PEM encoded Certificate Authority Certificate |
---|
[d8ae2a0] | 464 | |
---|
| 465 | GnuTLSProxyCAFile FILEPATH |
---|
| 466 | |
---|
| 467 | Default: *none*\ |
---|
| 468 | Context: server config, virtual host |
---|
| 469 | |
---|
[809c422] | 470 | Takes an absolute or relative path to a PEM encoded certificate to use |
---|
[d8ae2a0] | 471 | as a Certificate Authority when verifying certificates provided by |
---|
| 472 | proxy back end servers. This file may contain a list of trusted |
---|
| 473 | authorities. If not set, verification of TLS back end servers will |
---|
| 474 | always fail due to lack of a trusted CA. |
---|
| 475 | |
---|
[809c422] | 476 | `GnuTLSProxyCRLFile` |
---|
| 477 | -------------------- |
---|
| 478 | |
---|
| 479 | Set to the PEM encoded Certificate Revocation List |
---|
| 480 | |
---|
| 481 | GnuTLSProxyCRLFile FILEPATH |
---|
| 482 | |
---|
| 483 | Default: *none*\ |
---|
| 484 | Context: server config, virtual host |
---|
| 485 | |
---|
| 486 | Takes an absolute or relative path to a PEM encoded Certificate |
---|
| 487 | Revocation List to use when verifying certificates provided by proxy |
---|
| 488 | back end servers. The file may contain a list of CRLs. |
---|
| 489 | |
---|
[d8ae2a0] | 490 | `GnuTLSProxyCertificateFile` |
---|
| 491 | ----------------------- |
---|
| 492 | |
---|
[809c422] | 493 | Set to the PEM encoded Client Certificate |
---|
[d8ae2a0] | 494 | |
---|
| 495 | GnuTLSProxyCertificateFile FILEPATH |
---|
| 496 | |
---|
| 497 | Default: *none*\ |
---|
| 498 | Context: server config, virtual host |
---|
| 499 | |
---|
[809c422] | 500 | Takes an absolute or relative path to a PEM encoded X.509 certificate |
---|
[d8ae2a0] | 501 | to use as this Server's End Entity (EE) client certificate for TLS |
---|
| 502 | client authentication in proxy TLS connections. If you need to supply |
---|
| 503 | certificates for intermediate Certificate Authorities (iCAs), they |
---|
| 504 | should be listed in sequence in the file, from EE to the iCA closest |
---|
| 505 | to the root CA. Optionally, you can also include the root CA's |
---|
| 506 | certificate as the last certificate in the list. |
---|
| 507 | |
---|
| 508 | If not set, TLS client authentication will be disabled for TLS proxy |
---|
| 509 | connections. If set, `GnuTLSProxyKeyFile` must be set as well to |
---|
| 510 | provide the matching private key. |
---|
| 511 | |
---|
| 512 | `GnuTLSProxyKeyFile` |
---|
| 513 | --------------- |
---|
| 514 | |
---|
[809c422] | 515 | Set to the PEM encoded Private Key |
---|
[d8ae2a0] | 516 | |
---|
| 517 | GnuTLSProxyKeyFile FILEPATH |
---|
| 518 | |
---|
| 519 | Default: *none*\ |
---|
| 520 | Context: server config, virtual host |
---|
| 521 | |
---|
| 522 | Takes an absolute or relative path to the Private Key matching the |
---|
| 523 | certificate configured using the `GnuTLSProxyCertificateFile` |
---|
| 524 | directive. This key cannot currently be password protected. |
---|
| 525 | |
---|
| 526 | **Security Warning:**\ |
---|
| 527 | This private key must be protected. It is read while Apache is still |
---|
| 528 | running as root, and does not need to be readable by the nobody or |
---|
| 529 | apache user. |
---|
| 530 | |
---|
[f030883] | 531 | `GnuTLSProxyPriorities` |
---|
| 532 | ------------------ |
---|
| 533 | |
---|
| 534 | Set the allowed ciphers, key exchange algorithms, MACs and compression |
---|
| 535 | methods for proxy connections |
---|
| 536 | |
---|
| 537 | GnuTLSProxyPriorities NORMAL:+CIPHER_0:+CIPHER_1:...:+CIPHER_N |
---|
| 538 | |
---|
| 539 | Default: *none*\ |
---|
| 540 | Context: server config, virtual host |
---|
| 541 | |
---|
| 542 | This option is used to set the allowed ciphers, key exchange |
---|
| 543 | algorithms, MACs and compression methods for proxy connections. It |
---|
| 544 | takes the same parameters as `GnuTLSPriorities`. Required if |
---|
[a2e3c33] | 545 | `GnuTLSProxyEngine` is `On`. |
---|
[f030883] | 546 | |
---|
[4ee45a1] | 547 | * * * * * |
---|
| 548 | |
---|
| 549 | Configuration Examples |
---|
[2b16350] | 550 | ====================== |
---|
[4ee45a1] | 551 | |
---|
[2b16350] | 552 | Simple Standard SSL Example |
---|
| 553 | --------------------------- |
---|
[4ee45a1] | 554 | |
---|
| 555 | The following is an example of standard SSL Hosting, using one IP |
---|
| 556 | Addresses for each virtual host |
---|
| 557 | |
---|
[2b16350] | 558 | # Load the module into Apache. |
---|
| 559 | LoadModule gnutls_module modules/mod_gnutls.so |
---|
| 560 | GnuTLSCache gdbm /var/cache/www-tls-cache |
---|
| 561 | GnuTLSCacheTimeout 500 |
---|
| 562 | # With normal SSL Websites, you need one IP Address per-site. |
---|
| 563 | Listen 1.2.3.1:443 |
---|
| 564 | Listen 1.2.3.2:443 |
---|
| 565 | Listen 1.2.3.3:443 |
---|
| 566 | Listen 1.2.3.4:443 |
---|
| 567 | <VirtualHost 1.2.3.1:443> |
---|
| 568 | GnuTLSEnable on |
---|
| 569 | GnuTLSPriorities NONE:+AES-128-CBC:+3DES-CBC:+ARCFOUR-128:+RSA:+DHE-RSA:+DHE-DSS:+SHA1:+MD5:+COMP-NULL |
---|
| 570 | DocumentRoot /www/site1.example.com/html |
---|
| 571 | ServerName site1.example.com:443 |
---|
| 572 | GnuTLSCertificateFile conf/ssl/site1.crt |
---|
| 573 | GnuTLSKeyFile conf/ss/site1.key |
---|
| 574 | </VirtualHost> |
---|
| 575 | <VirtualHost 1.2.3.2:443> |
---|
| 576 | # This virtual host enables SRP authentication |
---|
| 577 | GnuTLSEnable on |
---|
| 578 | GnuTLSPriorities NORMAL:+SRP |
---|
| 579 | DocumentRoot /www/site2.example.com/html |
---|
| 580 | ServerName site2.example.com:443 |
---|
| 581 | GnuTLSSRPPasswdFile conf/ssl/tpasswd.site2 |
---|
| 582 | GnuTLSSRPPasswdConfFile conf/ssl/tpasswd.site2.conf |
---|
| 583 | </VirtualHost> |
---|
| 584 | <VirtualHost 1.2.3.3:443> |
---|
| 585 | # This server enables SRP, OpenPGP and X.509 authentication. |
---|
| 586 | GnuTLSEnable on |
---|
| 587 | GnuTLSPriorities NORMAL:+SRP:+SRP-RSA:+SRP-DSS |
---|
| 588 | DocumentRoot /www/site3.example.com/html |
---|
| 589 | ServerName site3.example.com:443 |
---|
| 590 | GnuTLSCertificateFile conf/ssl/site3.crt |
---|
| 591 | GnuTLSKeyFile conf/ss/site3.key |
---|
| 592 | GnuTLSClientVerify ignore |
---|
| 593 | GnuTLSPGPCertificateFile conf/ss/site3.pub.asc |
---|
| 594 | GnuTLSPGPKeyFile conf/ss/site3.sec.asc |
---|
| 595 | GnuTLSSRPPasswdFile conf/ssl/tpasswd.site3 |
---|
| 596 | GnuTLSSRPPasswdConfFile conf/ssl/tpasswd.site3.conf |
---|
| 597 | </VirtualHost> |
---|
| 598 | <VirtualHost 1.2.3.4:443> |
---|
| 599 | GnuTLSEnable on |
---|
| 600 | # %COMPAT disables some security features to enable maximum compatibility with clients. |
---|
| 601 | GnuTLSPriorities NONE:+AES-128-CBC:+ARCFOUR-128:+RSA:+SHA1:+MD5:+COMP-NULL:%COMPAT |
---|
| 602 | DocumentRoot /www/site4.example.com/html |
---|
| 603 | ServerName site4.example.com:443 |
---|
| 604 | GnuTLSCertificateFile conf/ssl/site4.crt |
---|
| 605 | GnuTLSKeyFile conf/ss/site4.key |
---|
| 606 | </VirtualHost> |
---|
| 607 | |
---|
| 608 | Server Name Indication Example |
---|
| 609 | ------------------------------ |
---|
| 610 | |
---|
| 611 | `mod_gnutls` can also use "Server Name Indication", as specified in |
---|
| 612 | RFC 3546. This allows hosting many SSL Websites, with a Single IP |
---|
| 613 | Address. Currently all the recent browsers support this |
---|
| 614 | standard. Here is an example, using SNI: ` ` |
---|
| 615 | |
---|
| 616 | |
---|
| 617 | # Load the module into Apache. |
---|
| 618 | LoadModule gnutls_module modules/mod_gnutls.so |
---|
| 619 | # With normal SSL Websites, you need one IP Address per-site. |
---|
| 620 | Listen 1.2.3.1:443 |
---|
| 621 | # This could also be 'Listen *:443', |
---|
| 622 | # just like '*:80' is common for non-https |
---|
| 623 | # No caching. Enable session tickets. Timeout is still used for |
---|
| 624 | # ticket expiration. |
---|
| 625 | GnuTLSCacheTimeout 600 |
---|
| 626 | # This tells apache, that for this IP/Port combination, we want to use |
---|
| 627 | # Name Based Virtual Hosting. In the case of Server Name Indication, |
---|
| 628 | # it lets mod_gnutls pick the correct Server Certificate. |
---|
| 629 | NameVirtualHost 1.2.3.1:443 |
---|
| 630 | <VirtualHost 1.2.3.1:443> |
---|
| 631 | GnuTLSEnable on |
---|
| 632 | GnuTLSSessionTickets on |
---|
| 633 | GnuTLSPriorities NORMAL |
---|
| 634 | DocumentRoot /www/site1.example.com/html |
---|
| 635 | ServerName site1.example.com:443 |
---|
| 636 | GnuTLSCertificateFile conf/ssl/site1.crt |
---|
| 637 | GnuTLSKeyFile conf/ss/site1.key |
---|
| 638 | </VirtualHost> |
---|
| 639 | <VirtualHost 1.2.3.1:443> |
---|
| 640 | GnuTLSEnable on |
---|
| 641 | GnuTLSPriorities NORMAL |
---|
| 642 | DocumentRoot /www/site2.example.com/html |
---|
| 643 | ServerName site2.example.com:443 |
---|
| 644 | GnuTLSCertificateFile conf/ssl/site2.crt |
---|
| 645 | GnuTLSKeyFile conf/ss/site2.key |
---|
| 646 | </VirtualHost> |
---|
| 647 | <VirtualHost 1.2.3.1:443> |
---|
| 648 | GnuTLSEnable on |
---|
| 649 | GnuTLSPriorities NORMAL |
---|
| 650 | DocumentRoot /www/site3.example.com/html |
---|
| 651 | ServerName site3.example.com:443 |
---|
| 652 | GnuTLSCertificateFile conf/ssl/site3.crt |
---|
| 653 | GnuTLSKeyFile conf/ss/site3.key |
---|
| 654 | </VirtualHost> |
---|
| 655 | <VirtualHost 1.2.3.1:443> |
---|
| 656 | GnuTLSEnable on |
---|
| 657 | GnuTLSPriorities NORMAL |
---|
| 658 | DocumentRoot /www/site4.example.com/html |
---|
| 659 | ServerName site4.example.com:443 |
---|
| 660 | GnuTLSCertificateFile conf/ssl/site4.crt |
---|
| 661 | GnuTLSKeyFile conf/ss/site4.key |
---|
| 662 | </VirtualHost> |
---|
[4ee45a1] | 663 | |
---|
| 664 | |
---|
[2b16350] | 665 | * * * * * |
---|
[4ee45a1] | 666 | |
---|
[2b16350] | 667 | Performance Issues |
---|
| 668 | ================== |
---|
| 669 | |
---|
| 670 | `mod_gnutls` by default uses conservative settings for the server. |
---|
| 671 | You can fine tune the configuration to reduce the load on a busy |
---|
| 672 | server. The following examples do exactly this: |
---|
| 673 | |
---|
| 674 | |
---|
| 675 | # Load the module into Apache. |
---|
| 676 | LoadModule gnutls_module modules/mod_gnutls.so |
---|
| 677 | # Using 4 memcache servers to distribute the SSL Session Cache. |
---|
| 678 | GnuTLSCache memcache "mc1.example.com mc2.example.com mc3.example.com mc4.example.com" |
---|
| 679 | GnuTLSCacheTimeout 600 |
---|
| 680 | Listen 1.2.3.1:443 |
---|
| 681 | NameVirtualHost 1.2.3.1:443 |
---|
| 682 | <VirtualHost 1.2.3.1:443> |
---|
| 683 | GnuTLSEnable on |
---|
| 684 | # Here we disable the Perfect forward secrecy ciphersuites (DHE) |
---|
| 685 | # and disallow AES-256 since AES-128 is just fine. |
---|
| 686 | GnuTLSPriorities NORMAL:!DHE-RSA:!DHE-DSS:!AES-256-CBC:%COMPAT |
---|
| 687 | DocumentRoot /www/site1.example.com/html |
---|
| 688 | ServerName site1.example.com:443 |
---|
| 689 | GnuTLSCertificateFile conf/ssl/site1.crt |
---|
| 690 | GnuTLSKeyFile conf/ss/site1.key |
---|
| 691 | </VirtualHost> |
---|
| 692 | <VirtualHost 1.2.3.1:443> |
---|
| 693 | GnuTLSEnable on |
---|
| 694 | # Here we instead of disabling the DHE ciphersuites we use |
---|
| 695 | # Diffie Hellman parameters of smaller size than the default (2048 bits). |
---|
| 696 | # Using small numbers from 768 to 1024 bits should be ok once they are |
---|
| 697 | # regenerated every few hours. |
---|
| 698 | # Use "certtool --generate-dh-params --bits 1024" to get those |
---|
| 699 | GnuTLSDHFile /etc/apache2/dh.params |
---|
| 700 | GnuTLSPriorities NORMAL:!AES-256-CBC:%COMPAT |
---|
| 701 | DocumentRoot /www/site2.example.com/html |
---|
| 702 | ServerName site2.example.com:443 |
---|
| 703 | GnuTLSCertificateFile conf/ssl/site2.crt |
---|
| 704 | GnuTLSKeyFile conf/ss/site2.key |
---|
| 705 | </VirtualHost> |
---|
[4ee45a1] | 706 | |
---|
| 707 | * * * * * |
---|
| 708 | |
---|
[2b16350] | 709 | Environment Variables |
---|
| 710 | ===================== |
---|
[4ee45a1] | 711 | |
---|
[2b16350] | 712 | `mod_gnutls` exports the following environment variables to scripts. |
---|
| 713 | These are compatible with `mod_ssl`. |
---|
[4ee45a1] | 714 | |
---|
[2b16350] | 715 | `HTTPS` |
---|
| 716 | ------- |
---|
[4ee45a1] | 717 | |
---|
[2b16350] | 718 | Can be `on` or `off` |
---|
[4ee45a1] | 719 | |
---|
[2b16350] | 720 | `SSL_VERSION_LIBRARY` |
---|
| 721 | --------------------- |
---|
[4ee45a1] | 722 | |
---|
[2b16350] | 723 | The version of the GnuTLS library |
---|
[4ee45a1] | 724 | |
---|
[2b16350] | 725 | `SSL_VERSION_INTERFACE` |
---|
| 726 | ----------------------- |
---|
[4ee45a1] | 727 | |
---|
| 728 | The version of this module |
---|
| 729 | |
---|
[2b16350] | 730 | `SSL_PROTOCOL` |
---|
| 731 | -------------- |
---|
[4ee45a1] | 732 | |
---|
[2b16350] | 733 | The SSL or TLS protocol name (such as `TLS 1.0` etc.) |
---|
[4ee45a1] | 734 | |
---|
[2b16350] | 735 | `SSL_CIPHER` |
---|
| 736 | ------------ |
---|
[4ee45a1] | 737 | |
---|
| 738 | The SSL or TLS cipher suite name |
---|
| 739 | |
---|
[2b16350] | 740 | `SSL_COMPRESS_METHOD` |
---|
| 741 | --------------------- |
---|
[4ee45a1] | 742 | |
---|
[2b16350] | 743 | The negotiated compression method (`NULL` or `DEFLATE`) |
---|
[4ee45a1] | 744 | |
---|
[2b16350] | 745 | `SSL_SRP_USER` |
---|
| 746 | -------------- |
---|
[4ee45a1] | 747 | |
---|
| 748 | The SRP username used for authentication (only set when |
---|
[2b16350] | 749 | `GnuTLSSRPPasswdFile` and `GnuTLSSRPPasswdConfFile` are configured). |
---|
[4ee45a1] | 750 | |
---|
[2b16350] | 751 | `SSL_CIPHER_USEKEYSIZE` & `SSL_CIPHER_ALGKEYSIZE` |
---|
| 752 | ------------------------------------------------- |
---|
[4ee45a1] | 753 | |
---|
| 754 | The number if bits used in the used cipher algorithm. |
---|
| 755 | |
---|
| 756 | This does not fully reflect the security level since the size of |
---|
| 757 | RSA or DHE key exchange parameters affect the security level too. |
---|
| 758 | |
---|
[5674676] | 759 | `SSL_DH_PRIME_BITS` |
---|
| 760 | ------------------- |
---|
| 761 | |
---|
| 762 | The number if bits in the modulus for the DH group, if DHE or static |
---|
| 763 | DH is used. |
---|
| 764 | |
---|
| 765 | This will not be set if DH is not used. |
---|
| 766 | |
---|
[2b16350] | 767 | `SSL_CIPHER_EXPORT` |
---|
| 768 | ------------------- |
---|
[4ee45a1] | 769 | |
---|
[2b16350] | 770 | `True` or `False`. Whether the cipher suite negotiated is an export one. |
---|
[4ee45a1] | 771 | |
---|
[2b16350] | 772 | `SSL_SESSION_ID` |
---|
| 773 | ---------------- |
---|
[4ee45a1] | 774 | |
---|
| 775 | The session ID negotiated in this session. Can be the same during client |
---|
| 776 | reloads. |
---|
| 777 | |
---|
[2b16350] | 778 | `SSL_CLIENT_V_REMAIN` |
---|
| 779 | --------------------- |
---|
[4ee45a1] | 780 | |
---|
| 781 | The number of days until the client's certificate is expired. |
---|
| 782 | |
---|
[2b16350] | 783 | `SSL_CLIENT_V_START` |
---|
| 784 | -------------------- |
---|
[4ee45a1] | 785 | |
---|
| 786 | The activation time of client's certificate. |
---|
| 787 | |
---|
[2b16350] | 788 | `SSL_CLIENT_V_END` |
---|
| 789 | ------------------ |
---|
[4ee45a1] | 790 | |
---|
| 791 | The expiration time of client's certificate. |
---|
| 792 | |
---|
[2b16350] | 793 | `SSL_CLIENT_S_DN` |
---|
| 794 | ----------------- |
---|
[4ee45a1] | 795 | |
---|
| 796 | The distinguished name of client's certificate in RFC2253 format. |
---|
| 797 | |
---|
[2b16350] | 798 | `SSL_CLIENT_I_DN` |
---|
| 799 | ----------------- |
---|
[4ee45a1] | 800 | |
---|
| 801 | The SSL or TLS cipher suite name |
---|
| 802 | |
---|
[2b16350] | 803 | `SSL_CLIENT_S_AN%` |
---|
| 804 | ------------------ |
---|
[4ee45a1] | 805 | |
---|
[2b16350] | 806 | These will contain the alternative names of the client certificate (`%` is |
---|
[4ee45a1] | 807 | a number starting from zero). |
---|
| 808 | |
---|
[2b16350] | 809 | The values will be prepended by `DNSNAME:`, `RFC822NAME:` or `URI:` |
---|
[4ee45a1] | 810 | depending on the type. |
---|
| 811 | |
---|
[2b16350] | 812 | If it is not supported the value `UNSUPPORTED` will be set. |
---|
[4ee45a1] | 813 | |
---|
[2b16350] | 814 | `SSL_SERVER_M_SERIAL` |
---|
| 815 | --------------------- |
---|
[4ee45a1] | 816 | |
---|
| 817 | The serial number of the server's certificate. |
---|
| 818 | |
---|
[2b16350] | 819 | `SSL_SERVER_M_VERSION` |
---|
| 820 | ---------------------- |
---|
[4ee45a1] | 821 | |
---|
| 822 | The version of the server's certificate. |
---|
| 823 | |
---|
[2b16350] | 824 | `SSL_SERVER_A_SIG` |
---|
| 825 | ------------------ |
---|
[4ee45a1] | 826 | |
---|
| 827 | The algorithm used for the signature in server's certificate. |
---|
| 828 | |
---|
[2b16350] | 829 | `SSL_SERVER_A_KEY` |
---|
| 830 | ------------------ |
---|
[4ee45a1] | 831 | |
---|
| 832 | The public key algorithm in server's certificate. |
---|
| 833 | |
---|
[999cdec] | 834 | `SSL_SERVER_CERT` |
---|
[2b16350] | 835 | ------------------ |
---|
[4ee45a1] | 836 | |
---|
[999cdec] | 837 | The PEM-encoded (X.509) or ASCII-armored (OpenPGP) server certificate |
---|
| 838 | (see the `GnuTLSExportCertificates` directive). |
---|
[4ee45a1] | 839 | |
---|
[2b16350] | 840 | `SSL_SERVER_CERT_TYPE` |
---|
| 841 | ---------------------- |
---|
[4ee45a1] | 842 | |
---|
[2b16350] | 843 | The certificate type can be `X.509` or `OPENPGP`. |
---|
[ac32bb5] | 844 | |
---|
[999cdec] | 845 | `SSL_CLIENT_CERT` |
---|
| 846 | ------------------ |
---|
| 847 | |
---|
| 848 | The PEM-encoded (X.509) or ASCII-armored (OpenPGP) client certificate |
---|
| 849 | (see the `GnuTLSExportCertificates` directive). |
---|
| 850 | |
---|
[ac32bb5] | 851 | `SSL_CLIENT_CERT_TYPE` |
---|
| 852 | ---------------------- |
---|
| 853 | |
---|
| 854 | The certificate type can be `X.509` or `OPENPGP`. |
---|