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