1 | Welcome to the OpenSSL Project
|
---|
2 | ==============================
|
---|
3 |
|
---|
4 | [![openssl logo]][www.openssl.org]
|
---|
5 |
|
---|
6 | [![github actions ci badge]][github actions ci]
|
---|
7 | 
|
---|
8 | 
|
---|
9 | 
|
---|
10 |
|
---|
11 | OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit
|
---|
12 | for the TLS (formerly SSL), DTLS and QUIC (currently client side only)
|
---|
13 | protocols.
|
---|
14 |
|
---|
15 | The protocol implementations are based on a full-strength general purpose
|
---|
16 | cryptographic library, which can also be used stand-alone. Also included is a
|
---|
17 | cryptographic module validated to conform with FIPS standards.
|
---|
18 |
|
---|
19 | OpenSSL is descended from the SSLeay library developed by Eric A. Young
|
---|
20 | and Tim J. Hudson.
|
---|
21 |
|
---|
22 | The official Home Page of the OpenSSL Project is [www.openssl.org].
|
---|
23 |
|
---|
24 | Table of Contents
|
---|
25 | =================
|
---|
26 |
|
---|
27 | - [Overview](#overview)
|
---|
28 | - [Download](#download)
|
---|
29 | - [Build and Install](#build-and-install)
|
---|
30 | - [Documentation](#documentation)
|
---|
31 | - [License](#license)
|
---|
32 | - [Support](#support)
|
---|
33 | - [Contributing](#contributing)
|
---|
34 | - [Legalities](#legalities)
|
---|
35 |
|
---|
36 | Overview
|
---|
37 | ========
|
---|
38 |
|
---|
39 | The OpenSSL toolkit includes:
|
---|
40 |
|
---|
41 | - **libssl**
|
---|
42 | an implementation of all TLS protocol versions up to TLSv1.3 ([RFC 8446]),
|
---|
43 | DTLS protocol versions up to DTLSv1.2 ([RFC 6347]) and
|
---|
44 | the QUIC (currently client side only) version 1 protocol ([RFC 9000]).
|
---|
45 |
|
---|
46 | - **libcrypto**
|
---|
47 | a full-strength general purpose cryptographic library. It constitutes the
|
---|
48 | basis of the TLS implementation, but can also be used independently.
|
---|
49 |
|
---|
50 | - **openssl**
|
---|
51 | the OpenSSL command line tool, a swiss army knife for cryptographic tasks,
|
---|
52 | testing and analyzing. It can be used for
|
---|
53 | - creation of key parameters
|
---|
54 | - creation of X.509 certificates, CSRs and CRLs
|
---|
55 | - calculation of message digests
|
---|
56 | - encryption and decryption
|
---|
57 | - SSL/TLS/DTLS and client and server tests
|
---|
58 | - QUIC client tests
|
---|
59 | - handling of S/MIME signed or encrypted mail
|
---|
60 | - and more...
|
---|
61 |
|
---|
62 | Download
|
---|
63 | ========
|
---|
64 |
|
---|
65 | For Production Use
|
---|
66 | ------------------
|
---|
67 |
|
---|
68 | Source code tarballs of the official releases can be downloaded from
|
---|
69 | [openssl-library.org/source/](https://openssl-library.org/source/).
|
---|
70 | The OpenSSL project does not distribute the toolkit in binary form.
|
---|
71 |
|
---|
72 | However, for a large variety of operating systems precompiled versions
|
---|
73 | of the OpenSSL toolkit are available. In particular, on Linux and other
|
---|
74 | Unix operating systems, it is normally recommended to link against the
|
---|
75 | precompiled shared libraries provided by the distributor or vendor.
|
---|
76 |
|
---|
77 | We also maintain a list of third parties that produce OpenSSL binaries for
|
---|
78 | various Operating Systems (including Windows) on the [Binaries] page on our
|
---|
79 | wiki.
|
---|
80 |
|
---|
81 | For Testing and Development
|
---|
82 | ---------------------------
|
---|
83 |
|
---|
84 | Although testing and development could in theory also be done using
|
---|
85 | the source tarballs, having a local copy of the git repository with
|
---|
86 | the entire project history gives you much more insight into the
|
---|
87 | code base.
|
---|
88 |
|
---|
89 | The main OpenSSL Git repository is private.
|
---|
90 | There is a public GitHub mirror of it at [github.com/openssl/openssl],
|
---|
91 | which is updated automatically from the former on every commit.
|
---|
92 |
|
---|
93 | A local copy of the Git repository can be obtained by cloning it from
|
---|
94 | the GitHub mirror using
|
---|
95 |
|
---|
96 | git clone https://github.com/openssl/openssl.git
|
---|
97 |
|
---|
98 | If you intend to contribute to OpenSSL, either to fix bugs or contribute
|
---|
99 | new features, you need to fork the GitHub mirror and clone your public fork
|
---|
100 | instead.
|
---|
101 |
|
---|
102 | git clone https://github.com/yourname/openssl.git
|
---|
103 |
|
---|
104 | This is necessary because all development of OpenSSL nowadays is done via
|
---|
105 | GitHub pull requests. For more details, see [Contributing](#contributing).
|
---|
106 |
|
---|
107 | Build and Install
|
---|
108 | =================
|
---|
109 |
|
---|
110 | After obtaining the Source, have a look at the [INSTALL](INSTALL.md) file for
|
---|
111 | detailed instructions about building and installing OpenSSL. For some
|
---|
112 | platforms, the installation instructions are amended by a platform specific
|
---|
113 | document.
|
---|
114 |
|
---|
115 | * [Notes for UNIX-like platforms](NOTES-UNIX.md)
|
---|
116 | * [Notes for Android platforms](NOTES-ANDROID.md)
|
---|
117 | * [Notes for Windows platforms](NOTES-WINDOWS.md)
|
---|
118 | * [Notes for the DOS platform with DJGPP](NOTES-DJGPP.md)
|
---|
119 | * [Notes for the OpenVMS platform](NOTES-VMS.md)
|
---|
120 | * [Notes on Perl](NOTES-PERL.md)
|
---|
121 | * [Notes on Valgrind](NOTES-VALGRIND.md)
|
---|
122 |
|
---|
123 | Specific notes on upgrading to OpenSSL 3.x from previous versions can be found
|
---|
124 | in the [ossl-guide-migration(7ossl)] manual page.
|
---|
125 |
|
---|
126 | Documentation
|
---|
127 | =============
|
---|
128 |
|
---|
129 | README Files
|
---|
130 | ------------
|
---|
131 |
|
---|
132 | There are some README.md files in the top level of the source distribution
|
---|
133 | containing additional information on specific topics.
|
---|
134 |
|
---|
135 | * [Information about the OpenSSL QUIC protocol implementation](README-QUIC.md)
|
---|
136 | * [Information about the OpenSSL Provider architecture](README-PROVIDERS.md)
|
---|
137 | * [Information about using the OpenSSL FIPS validated module](README-FIPS.md)
|
---|
138 | * [Information about the legacy OpenSSL Engine architecture](README-ENGINES.md)
|
---|
139 |
|
---|
140 | The OpenSSL Guide
|
---|
141 | -----------------
|
---|
142 |
|
---|
143 | There are some tutorial and introductory pages on some important OpenSSL topics
|
---|
144 | within the [OpenSSL Guide].
|
---|
145 |
|
---|
146 | Manual Pages
|
---|
147 | ------------
|
---|
148 |
|
---|
149 | The manual pages for the master branch and all current stable releases are
|
---|
150 | available online.
|
---|
151 |
|
---|
152 | - [OpenSSL master](https://www.openssl.org/docs/manmaster)
|
---|
153 | - [OpenSSL 3.0](https://www.openssl.org/docs/man3.0)
|
---|
154 | - [OpenSSL 3.1](https://www.openssl.org/docs/man3.1)
|
---|
155 | - [OpenSSL 3.2](https://www.openssl.org/docs/man3.2)
|
---|
156 |
|
---|
157 | Demos
|
---|
158 | -----
|
---|
159 |
|
---|
160 | There are numerous source code demos for using various OpenSSL capabilities in the
|
---|
161 | [demos subfolder](./demos).
|
---|
162 |
|
---|
163 | Wiki
|
---|
164 | ----
|
---|
165 |
|
---|
166 | There is a Wiki at [wiki.openssl.org] which is currently not very active.
|
---|
167 | It contains a lot of useful information, not all of which is up-to-date.
|
---|
168 |
|
---|
169 | License
|
---|
170 | =======
|
---|
171 |
|
---|
172 | OpenSSL is licensed under the Apache License 2.0, which means that
|
---|
173 | you are free to get and use it for commercial and non-commercial
|
---|
174 | purposes as long as you fulfill its conditions.
|
---|
175 |
|
---|
176 | See the [LICENSE.txt](LICENSE.txt) file for more details.
|
---|
177 |
|
---|
178 | Support
|
---|
179 | =======
|
---|
180 |
|
---|
181 | There are various ways to get in touch. The correct channel depends on
|
---|
182 | your requirement. See the [SUPPORT](SUPPORT.md) file for more details.
|
---|
183 |
|
---|
184 | Contributing
|
---|
185 | ============
|
---|
186 |
|
---|
187 | If you are interested and willing to contribute to the OpenSSL project,
|
---|
188 | please take a look at the [CONTRIBUTING](CONTRIBUTING.md) file.
|
---|
189 |
|
---|
190 | Legalities
|
---|
191 | ==========
|
---|
192 |
|
---|
193 | A number of nations restrict the use or export of cryptography. If you are
|
---|
194 | potentially subject to such restrictions, you should seek legal advice before
|
---|
195 | attempting to develop or distribute cryptographic code.
|
---|
196 |
|
---|
197 | Copyright
|
---|
198 | =========
|
---|
199 |
|
---|
200 | Copyright (c) 1998-2025 The OpenSSL Project Authors
|
---|
201 |
|
---|
202 | Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
---|
203 |
|
---|
204 | All rights reserved.
|
---|
205 |
|
---|
206 | <!-- Links -->
|
---|
207 |
|
---|
208 | [www.openssl.org]:
|
---|
209 | <https://www.openssl.org>
|
---|
210 | "OpenSSL Homepage"
|
---|
211 |
|
---|
212 | [github.com/openssl/openssl]:
|
---|
213 | <https://github.com/openssl/openssl>
|
---|
214 | "OpenSSL GitHub Mirror"
|
---|
215 |
|
---|
216 | [wiki.openssl.org]:
|
---|
217 | <https://wiki.openssl.org>
|
---|
218 | "OpenSSL Wiki"
|
---|
219 |
|
---|
220 | [ossl-guide-migration(7ossl)]:
|
---|
221 | <https://www.openssl.org/docs/manmaster/man7/ossl-guide-migration.html>
|
---|
222 | "OpenSSL Migration Guide"
|
---|
223 |
|
---|
224 | [RFC 8446]:
|
---|
225 | <https://tools.ietf.org/html/rfc8446>
|
---|
226 |
|
---|
227 | [RFC 6347]:
|
---|
228 | <https://tools.ietf.org/html/rfc6347>
|
---|
229 |
|
---|
230 | [RFC 9000]:
|
---|
231 | <https://tools.ietf.org/html/rfc9000>
|
---|
232 |
|
---|
233 | [Binaries]:
|
---|
234 | <https://wiki.openssl.org/index.php/Binaries>
|
---|
235 | "List of third party OpenSSL binaries"
|
---|
236 |
|
---|
237 | [OpenSSL Guide]:
|
---|
238 | <https://www.openssl.org/docs/manmaster/man7/ossl-guide-introduction.html>
|
---|
239 | "An introduction to OpenSSL"
|
---|
240 |
|
---|
241 | <!-- Logos and Badges -->
|
---|
242 |
|
---|
243 | [openssl logo]:
|
---|
244 | doc/images/openssl.svg
|
---|
245 | "OpenSSL Logo"
|
---|
246 |
|
---|
247 | [github actions ci badge]:
|
---|
248 | <https://github.com/openssl/openssl/workflows/GitHub%20CI/badge.svg>
|
---|
249 | "GitHub Actions CI Status"
|
---|
250 |
|
---|
251 | [github actions ci]:
|
---|
252 | <https://github.com/openssl/openssl/actions?query=workflow%3A%22GitHub+CI%22>
|
---|
253 | "GitHub Actions CI"
|
---|
254 |
|
---|
255 | [appveyor badge]:
|
---|
256 | <https://ci.appveyor.com/api/projects/status/8e10o7xfrg73v98f/branch/master?svg=true>
|
---|
257 | "AppVeyor Build Status"
|
---|
258 |
|
---|
259 | [appveyor jobs]:
|
---|
260 | <https://ci.appveyor.com/project/openssl/openssl/branch/master>
|
---|
261 | "AppVeyor Jobs"
|
---|