FAQ (76866) | FAQ (79998) |
---|---|
1OpenSSL - Frequently Asked Questions 2-------------------------------------- 3 4[MISC] Miscellaneous questions 5 6* Which is the current version of OpenSSL? 7* Where is the documentation? 8* How can I contact the OpenSSL developers? 9* Where can I get a compiled version of OpenSSL? 10* Why aren't tools like 'autoconf' and 'libtool' used? 11 12[LEGAL] Legal questions 13 14* Do I need patent licenses to use OpenSSL? 15* Can I use OpenSSL with GPL software? 16 17[USER] Questions on using the OpenSSL applications 18 19* Why do I get a "PRNG not seeded" error message? | 1OpenSSL - Frequently Asked Questions 2-------------------------------------- 3 4[MISC] Miscellaneous questions 5 6* Which is the current version of OpenSSL? 7* Where is the documentation? 8* How can I contact the OpenSSL developers? 9* Where can I get a compiled version of OpenSSL? 10* Why aren't tools like 'autoconf' and 'libtool' used? 11 12[LEGAL] Legal questions 13 14* Do I need patent licenses to use OpenSSL? 15* Can I use OpenSSL with GPL software? 16 17[USER] Questions on using the OpenSSL applications 18 19* Why do I get a "PRNG not seeded" error message? |
20* Why do I get an "unable to write 'random state'" error message? |
|
20* How do I create certificates or certificate requests? 21* Why can't I create certificate requests? 22* Why does <SSL program> fail with a certificate verify error? 23* Why can I only use weak ciphers when I connect to a server using OpenSSL? 24* How can I create DSA certificates? 25* Why can't I make an SSL connection using a DSA certificate? 26* How can I remove the passphrase on a private key? 27* Why can't I use OpenSSL certificates with SSL client authentication? --- 14 unchanged lines hidden (view full) --- 42* I've compiled a program under Windows and it crashes: why? 43* How do I read or write a DER encoded buffer using the ASN1 functions? 44* I've tried using <M_some_evil_pkcs12_macro> and I get errors why? 45* I've called <some function> and it fails, why? 46* I just get a load of numbers for the error output, what do they mean? 47* Why do I get errors about unknown algorithms? 48* Why can't the OpenSSH configure script detect OpenSSL? 49* Can I use OpenSSL's SSL library with non-blocking I/O? | 21* How do I create certificates or certificate requests? 22* Why can't I create certificate requests? 23* Why does <SSL program> fail with a certificate verify error? 24* Why can I only use weak ciphers when I connect to a server using OpenSSL? 25* How can I create DSA certificates? 26* Why can't I make an SSL connection using a DSA certificate? 27* How can I remove the passphrase on a private key? 28* Why can't I use OpenSSL certificates with SSL client authentication? --- 14 unchanged lines hidden (view full) --- 43* I've compiled a program under Windows and it crashes: why? 44* How do I read or write a DER encoded buffer using the ASN1 functions? 45* I've tried using <M_some_evil_pkcs12_macro> and I get errors why? 46* I've called <some function> and it fails, why? 47* I just get a load of numbers for the error output, what do they mean? 48* Why do I get errors about unknown algorithms? 49* Why can't the OpenSSH configure script detect OpenSSL? 50* Can I use OpenSSL's SSL library with non-blocking I/O? |
51* Why doesn't my server application receive a client certificate? |
|
50 51=============================================================================== 52 53[MISC] ======================================================================== 54 55* Which is the current version of OpenSSL? 56 57The current version is available from <URL: http://www.openssl.org>. | 52 53=============================================================================== 54 55[MISC] ======================================================================== 56 57* Which is the current version of OpenSSL? 58 59The current version is available from <URL: http://www.openssl.org>. |
58OpenSSL 0.9.6a was released on April 5th, 2001. | 60OpenSSL 0.9.6b was released on July 9th, 2001. |
59 60In addition to the current stable release, you can also access daily 61snapshots of the OpenSSL development version at <URL: 62ftp://ftp.openssl.org/snapshot/>, or get it by anonymous CVS access. 63 64 65* Where is the documentation? 66 --- 88 unchanged lines hidden (view full) --- 155 156* Why do I get a "PRNG not seeded" error message? 157 158Cryptographic software needs a source of unpredictable data to work 159correctly. Many open source operating systems provide a "randomness 160device" that serves this purpose. On other systems, applications have 161to call the RAND_add() or RAND_seed() function with appropriate data 162before generating keys or performing public key encryption. | 61 62In addition to the current stable release, you can also access daily 63snapshots of the OpenSSL development version at <URL: 64ftp://ftp.openssl.org/snapshot/>, or get it by anonymous CVS access. 65 66 67* Where is the documentation? 68 --- 88 unchanged lines hidden (view full) --- 157 158* Why do I get a "PRNG not seeded" error message? 159 160Cryptographic software needs a source of unpredictable data to work 161correctly. Many open source operating systems provide a "randomness 162device" that serves this purpose. On other systems, applications have 163to call the RAND_add() or RAND_seed() function with appropriate data 164before generating keys or performing public key encryption. |
165(These functions initialize the pseudo-random number generator, PRNG.) |
|
163 164Some broken applications do not do this. As of version 0.9.5, the 165OpenSSL functions that need randomness report an error if the random 166number generator has not been seeded with at least 128 bits of 167randomness. If this error occurs, please contact the author of the 168application you are using. It is likely that it never worked 169correctly. OpenSSL 0.9.5 and later make the error visible by refusing 170to perform potentially insecure encryption. 171 | 166 167Some broken applications do not do this. As of version 0.9.5, the 168OpenSSL functions that need randomness report an error if the random 169number generator has not been seeded with at least 128 bits of 170randomness. If this error occurs, please contact the author of the 171application you are using. It is likely that it never worked 172correctly. OpenSSL 0.9.5 and later make the error visible by refusing 173to perform potentially insecure encryption. 174 |
172On systems without /dev/urandom, it is a good idea to use the Entropy 173Gathering Demon; see the RAND_egd() manpage for details. | 175On systems without /dev/urandom and /dev/random, it is a good idea to 176use the Entropy Gathering Demon (EGD); see the RAND_egd() manpage for 177details. Starting with version 0.9.7, OpenSSL will automatically look 178for an EGD socket at /var/run/egd-pool, /dev/egd-pool, /etc/egd-pool and 179/etc/entropy. |
174 | 180 |
175Most components of the openssl command line tool try to use the 176file $HOME/.rnd (or $RANDFILE, if this environment variable is set) 177for seeding the PRNG. If this file does not exist or is too short, 178the "PRNG not seeded" error message may occur. | 181Most components of the openssl command line utility automatically try 182to seed the random number generator from a file. The name of the 183default seeding file is determined as follows: If environment variable 184RANDFILE is set, then it names the seeding file. Otherwise if 185environment variable HOME is set, then the seeding file is $HOME/.rnd. 186If neither RANDFILE nor HOME is set, versions up to OpenSSL 0.9.6 will 187use file .rnd in the current directory while OpenSSL 0.9.6a uses no 188default seeding file at all. OpenSSL 0.9.6b and later will behave 189similarly to 0.9.6a, but will use a default of "C:" for HOME on 190Windows systems if the environment variable has not been set. |
179 | 191 |
180[Note to OpenSSL 0.9.5 users: The command "openssl rsa" in version 1810.9.5 does not do this and will fail on systems without /dev/urandom 182when trying to password-encrypt an RSA key! This is a bug in the 183library; try a later version instead.] | 192If the default seeding file does not exist or is too short, the "PRNG 193not seeded" error message may occur. |
184 | 194 |
195The openssl command line utility will write back a new state to the 196default seeding file (and create this file if necessary) unless 197there was no sufficient seeding. 198 199Pointing $RANDFILE to an Entropy Gathering Daemon socket does not work. 200Use the "-rand" option of the OpenSSL command line tools instead. 201The $RANDFILE environment variable and $HOME/.rnd are only used by the 202OpenSSL command line tools. Applications using the OpenSSL library 203provide their own configuration options to specify the entropy source, 204please check out the documentation coming the with application. 205 |
|
185For Solaris 2.6, Tim Nibbe <tnibbe@sprint.net> and others have suggested 186installing the SUNski package from Sun patch 105710-01 (Sparc) which 187adds a /dev/random device and make sure it gets used, usually through 188$RANDFILE. There are probably similar patches for the other Solaris 189versions. However, be warned that /dev/random is usually a blocking 190device, which may have some effects on OpenSSL. 191 192 | 206For Solaris 2.6, Tim Nibbe <tnibbe@sprint.net> and others have suggested 207installing the SUNski package from Sun patch 105710-01 (Sparc) which 208adds a /dev/random device and make sure it gets used, usually through 209$RANDFILE. There are probably similar patches for the other Solaris 210versions. However, be warned that /dev/random is usually a blocking 211device, which may have some effects on OpenSSL. 212 213 |
214* Why do I get an "unable to write 'random state'" error message? 215 216 217Sometimes the openssl command line utility does not abort with 218a "PRNG not seeded" error message, but complains that it is 219"unable to write 'random state'". This message refers to the 220default seeding file (see previous answer). A possible reason 221is that no default filename is known because neither RANDFILE 222nor HOME is set. (Versions up to 0.9.6 used file ".rnd" in the 223current directory in this case, but this has changed with 0.9.6a.) 224 225 |
|
193* How do I create certificates or certificate requests? 194 195Check out the CA.pl(1) manual page. This provides a simple wrapper round 196the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check 197out the manual pages for the individual utilities and the certificate 198extensions documentation (currently in doc/openssl.txt). 199 200 --- 337 unchanged lines hidden (view full) --- 538it is also possible that SSL_write() cannot do any useful work until 539there is data to read, or that SSL_read() cannot do anything until it 540is possible to send data. One reason for this is that the peer may 541request a new TLS/SSL handshake at any time during the protocol, 542requiring a bi-directional message exchange; both SSL_read() and 543SSL_write() will try to continue any pending handshake. 544 545 | 226* How do I create certificates or certificate requests? 227 228Check out the CA.pl(1) manual page. This provides a simple wrapper round 229the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check 230out the manual pages for the individual utilities and the certificate 231extensions documentation (currently in doc/openssl.txt). 232 233 --- 337 unchanged lines hidden (view full) --- 571it is also possible that SSL_write() cannot do any useful work until 572there is data to read, or that SSL_read() cannot do anything until it 573is possible to send data. One reason for this is that the peer may 574request a new TLS/SSL handshake at any time during the protocol, 575requiring a bi-directional message exchange; both SSL_read() and 576SSL_write() will try to continue any pending handshake. 577 578 |
579* Why doesn't my server application receive a client certificate? 580 581Due to the TLS protocol definition, a client will only send a certificate, 582if explicitely asked by the server. Use the SSL_VERIFY_PEER flag of the 583SSL_CTX_set_verify() function to enable the use of client certificates. 584 585 |
|
546=============================================================================== 547 | 586=============================================================================== 587 |