Skip to content

Commit 98ca347

Browse files
authored
Merge branch 'main' into waf/refactor
2 parents a4e6447 + ebc5bf4 commit 98ca347

File tree

13 files changed

+430
-42
lines changed

13 files changed

+430
-42
lines changed

content/includes/nginx-plus/supported-distributions.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ docs:
33
---
44

55
{{<bootstrap-table "table table-striped table-bordered">}}
6-
| Distribution | Supported on R34 | Supported on R33 |
6+
| Distribution | Supported on R35 | Supported on R34 |
77
|-------------------------------------|----------------------------------------------------|--------------------------------------------------------|
8-
| AlmaLinux | 8 (x86_64, aarch64) <br> 9 (x86_64, aarch64) | 8 (x86_64, aarch64) <br> 9 (x86_64, aarch64) |
9-
| Alpine Linux | 3.18 (x86_64, aarch64) **(deprecated)** <br> 3.19 (x86_64, aarch64) <br> 3.20 (x86_64, aarch64) <br> 3.21 (x86_64, aarch64) **(new)** | 3.17 (x86_64, aarch64) **(deprecated)** <br> 3.18 (x86_64, aarch64) <br> 3.19 (x86_64, aarch64) <br> 3.20 (x86_64, aarch64) **(new)** |
8+
| AlmaLinux | 8 (x86_64, aarch64) <br> 9 (x86_64, aarch64) <br> 10 (x86_64, aarch64) **(new)** | 8 (x86_64, aarch64) <br> 9 (x86_64, aarch64) |
9+
| Alpine Linux | 3.19 (x86_64, aarch64) <br> 3.20 (x86_64, aarch64) <br> 3.21 (x86_64, aarch64) <br> 3.22 (x86_64, aarch64) **(new)** | 3.18 (x86_64, aarch64) **(deprecated)** <br> 3.19 (x86_64, aarch64) <br> 3.20 (x86_64, aarch64) <br> 3.21 (x86_64, aarch64) **(new)** |
1010
| Amazon Linux | 2023 (x86_64, aarch64) | 2023 (x86_64, aarch64) |
1111
| Amazon Linux 2 | LTS (x86_64, aarch64) | LTS (x86_64, aarch64) |
1212
| Debian | 11 (x86_64, aarch64) <br> 12 (x86_64, aarch64) | 11 (x86_64, aarch64) <br> 12 (x86_64, aarch64) |
13-
| FreeBSD | 13 (amd64) <br> 14 (amd64) | 13 (amd64) <br> 14 (amd64) |
13+
| FreeBSD | 13.5+ (amd64) <br> 14.3+ (amd64) | 13 (amd64) <br> 14 (amd64) |
1414
| Oracle Linux | 8.1+ (x86_64, aarch64) <br> 9 (x86_64) | 8.1+ (x86_64, aarch64) <br> 9 (x86_64) |
15-
| Red Hat Enterprise Linux (RHEL) | 8.1+ (x86_64, aarch64) <br> 9.0+ (x86_64, aarch64) | 8.1+ (x86_64, aarch64) <br> 9.0+ (x86_64, aarch64) |
15+
| Red Hat Enterprise Linux (RHEL) | 8.1+ (x86_64, aarch64) <br> 9.0+ (x86_64, aarch64) <br> 10.0+ (x86_64, aarch64) **(new)** | 8.1+ (x86_64, aarch64) <br> 9.0+ (x86_64, aarch64) |
1616
| Rocky Linux | 8 (x86_64, aarch64) <br> 9 (x86_64, aarch64) | 8 (x86_64, aarch64) <br> 9 (x86_64, aarch64) |
17-
| SUSE Linux Enterprise Server (SLES) | 15 SP2+ (x86_64) | 12 SP5 (x86_64) **(deprecated)** <br> 15 SP2+ (x86_64) |
18-
| Ubuntu | 20.04 LTS (x86_64, aarch64) **(deprecated)** <br> 22.04 LTS (x86_64, aarch64) <br> 24.04 LTS (x86_64, aarch64) | 20.04 LTS (x86_64, aarch64) <br> 22.04 LTS (x86_64, aarch64) <br> 24.04 LTS (x86_64, aarch64) |
17+
| SUSE Linux Enterprise Server (SLES) | 15 SP6+ (x86_64) | 15 SP2+ (x86_64) |
18+
| Ubuntu | 22.04 LTS (x86_64, aarch64) <br> 24.04 LTS (x86_64, aarch64) | 20.04 LTS (x86_64, aarch64) **(deprecated)** <br> 22.04 LTS (x86_64, aarch64) <br> 24.04 LTS (x86_64, aarch64) |
1919
{{</bootstrap-table>}}
Lines changed: 261 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,261 @@
1+
---
2+
description: Automates SSL/TLS certificate lifecycle management by enabling direct communication between clients and certificate authorities.
3+
title: ACME
4+
toc: true
5+
weight: 100
6+
type:
7+
- how-to
8+
---
9+
10+
The ACME protocol automates SSL/TLS certificate lifecycle management by enabling direct communication between clients and certificate authorities for issuance, installation, revocation, and replacement of SSL certificates.
11+
12+
The `nginx-plus-module-acme` module is an [NGINX-authored]({{< ref "/nginx/admin-guide/installing-nginx/installing-nginx-plus.md#nginx-authored-dynamic-modules" >}}) dynamic module that implements the automatic certificate management ([ACMEv2](https://www.rfc-editor.org/rfc/rfc8555.html)) protocol.
13+
14+
The source code for the module is available in the official [GitHub repository](https://github.com/nginx/nginx-acme). The official documentation, including module reference and usage examples, is available on the [nginx.org](https://nginx.org/en/docs/http/ngx_http_acme_module.html) website.
15+
16+
17+
## Installation
18+
19+
The installation process closely follows the [NGINX Plus installation procedure]({{< ref "/nginx/admin-guide/installing-nginx/installing-nginx-plus.md" >}}). The module is available as the prebuilt `nginx-plus-module-acme` package for various Linux distributions and can be installed directly from the official NGINX Plus repository. Prior to installation, you need to add the NGINX Plus package repository for your distribution and update the repository metadata.
20+
21+
1. Check the [Technical Specifications]({{< ref "/nginx/technical-specs.md" >}}) page to verify that the module is supported by your operating system.
22+
23+
2. Make sure you have the latest version of NGINX Plus. In Terminal, run the command:
24+
25+
```shell
26+
nginx -v
27+
```
28+
29+
Expected output of the command:
30+
31+
```shell
32+
nginx version: nginx/1.29.0 (nginx-plus-r35)
33+
```
34+
35+
3. Ensure you have the **nginx-repo.crt** and **nginx-repo.key** files from [MyF5 Customer Portal](https://account.f5.com/myf5) in the **/etc/ssl/nginx/** directory. These files are required for accessing the NGINX Plus repository.
36+
37+
```shell
38+
sudo cp <downloaded-file-name>.crt /etc/ssl/nginx/nginx-repo.crt && \
39+
sudo cp <downloaded-file-name>.key /etc/ssl/nginx/nginx-repo.key
40+
```
41+
42+
For Alpine, the **nginx-repo.crt** to **/etc/apk/cert.pem** and **nginx-repo.key** files should be added to **/etc/apk/cert.key**. Ensure these files contain only the specific key and certificate as Alpine Linux does not support mixing client certificates for multiple repositories.
43+
44+
For FreeBSD, the path to these files should also be added to the `/usr/local/etc/pkg.conf` file:
45+
46+
```shell
47+
PKG_ENV: { SSL_NO_VERIFY_PEER: "1",
48+
SSL_CLIENT_CERT_FILE: "/etc/ssl/nginx/nginx-repo.crt",
49+
SSL_CLIENT_KEY_FILE: "/etc/ssl/nginx/nginx-repo.key" }
50+
```
51+
52+
4. Ensure that all required dependencies for your operating system are installed.
53+
54+
For Amazon Linux 2023, AlmaLinux, CentOS, Oracle Linux, RHEL, and Rocky Linux:
55+
56+
```shell
57+
sudo dnf update && \
58+
sudo dnf install ca-certificates
59+
```
60+
61+
For Debian:
62+
63+
```shell
64+
sudo apt update && \
65+
sudo apt install apt-transport-https \
66+
lsb-release \
67+
ca-certificates \
68+
wget \
69+
gnupg2 \
70+
debian-archive-keyring
71+
```
72+
73+
For Ubuntu:
74+
75+
```shell
76+
sudo apt update && \
77+
sudo apt install apt-transport-https \
78+
lsb-release \
79+
ca-certificates \
80+
wget \
81+
gnupg2 \
82+
ubuntu-keyring
83+
```
84+
85+
For FreeBSD:
86+
87+
```shell
88+
sudo pkg update && \
89+
sudo pkg install ca_root_nss
90+
```
91+
92+
5. Ensure that the NGINX signing key has been added, if required by your operating system.
93+
94+
For Debian:
95+
96+
```shell
97+
wget -qO - https://cs.nginx.com/static/keys/nginx_signing.key \
98+
| gpg --dearmor \
99+
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
100+
```
101+
102+
For Ubuntu:
103+
104+
```shell
105+
printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
106+
https://pkgs.nginx.com/plus/ubuntu `lsb_release -cs` nginx-plus\n" \
107+
| sudo tee /etc/apt/sources.list.d/nginx-plus.list
108+
```
109+
110+
For Alpine:
111+
112+
```shell
113+
sudo wget -O /etc/apk/keys/nginx_signing.rsa.pub https://cs.nginx.com/static/keys/nginx_signing.rsa.pub
114+
```
115+
116+
6. Ensure that your package management system is configured to pull packages from the NGINX Plus repository. See [Installing NGINX Plus]({{< ref "/nginx/admin-guide/installing-nginx/installing-nginx-plus.md" >}}) for details.
117+
118+
7. Update the repository information and install the `nginx-plus-module-acme` package. In a terminal, run the appropriate command for your operating system.
119+
120+
For CentOS, Oracle Linux, and RHEL:
121+
122+
```shell
123+
sudo yum update && \
124+
sudo yum install nginx-plus-module-acme
125+
```
126+
127+
For Amazon Linux 2023, AlmaLinux, Rocky Linux:
128+
129+
```shell
130+
sudo dnf update && \
131+
sudo dnf install nginx-plus-module-acme
132+
```
133+
134+
For Debian and Ubuntu:
135+
136+
```shell
137+
sudo apt update && \
138+
sudo apt install nginx-plus-module-acme
139+
```
140+
141+
For Alpine:
142+
143+
```shell
144+
sudo apk update && \
145+
sudo apk add nginx-plus-module-acme
146+
```
147+
148+
For FreeBSD:
149+
150+
```shell
151+
sudo pkg update && \
152+
sudo pkg install nginx-plus-module-acme
153+
```
154+
155+
The resulting `ngx_http_acme_module.so` dynamic module will be written to the following directory, depending on your operating system:
156+
157+
- `/usr/lib64/nginx/modules/` for most Linux distributions
158+
- `/usr/lib/nginx/modules` for Debian, Ubuntu, Alpine
159+
- `/usr/local/etc/nginx/modules` for FreeBSD
160+
161+
8. Enable dynamic loading of the module.
162+
163+
- In a text editor, open the NGINX Plus configuration file (`/etc/nginx/nginx.conf` for Linux or `/usr/local/etc/nginx/nginx.conf` for FreeBSD).
164+
165+
- On the top-level (or “`main`”) context, specify the path to the dynamic module with the [`load_module`](https://nginx.org/en/docs/ngx_core_module.html#load_module) directive:
166+
167+
```nginx
168+
load_module modules/ngx_http_acme_module.so;
169+
170+
http {
171+
#...
172+
}
173+
```
174+
- Save the configuration file.
175+
176+
9. Test the NGINX Plus configuration. In a terminal, type-in the command:
177+
178+
```shell
179+
nginx -t
180+
```
181+
182+
Expected output of the command:
183+
184+
```shell
185+
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
186+
nginx: configuration file /etc/nginx/nginx.conf is successful
187+
```
188+
189+
10. Reload the NGINX Plus configuration to enable the module:
190+
191+
```shell
192+
nginx -s reload
193+
```
194+
195+
## Configuration
196+
197+
In a text editor, open the NGINX Plus configuration file:
198+
- `/etc/nginx/nginx.conf` for Linux
199+
- `/usr/local/etc/nginx/nginx.conf` for FreeBSD
200+
201+
For a complete list of directives, embedded variables, default span attributes, refer to the `ngx_http_acme_module` official documentation.
202+
203+
List of directives:
204+
205+
[`https://nginx.org/en/docs/http/ngx_http_acme_module.html#directives`](https://nginx.org/en/docs/ngx_otel_module.html#directives)
206+
207+
List of variables:
208+
209+
[`https://nginx.org/en/docs/http/ngx_http_acme_module.html#variables`](https://nginx.org/en/docs/ngx_otel_module.html#variables)
210+
211+
212+
## Usage example
213+
214+
```shell
215+
resolver 127.0.0.1:53;
216+
217+
acme_issuer example {
218+
uri https://acme.example.com/directory;
219+
# contact [email protected];
220+
state_path /var/cache/nginx/acme-example;
221+
accept_terms_of_service;
222+
}
223+
224+
acme_shared_zone zone=ngx_acme_shared:1M;
225+
226+
server {
227+
listen 443 ssl;
228+
server_name .example.test;
229+
230+
acme_certificate example;
231+
232+
ssl_certificate $acme_certificate;
233+
ssl_certificate_key $acme_certificate_key;
234+
235+
# do not parse the certificate on each request
236+
ssl_certificate_cache max=2;
237+
}
238+
239+
server {
240+
# listener on port 80 is required to process ACME HTTP-01 challenges
241+
listen 80;
242+
243+
location / {
244+
return 404;
245+
}
246+
}
247+
```
248+
249+
## More info
250+
251+
- [Native support for ACME blog post](https://blog.nginx.org/blog/native-support-for-acme-protocol)
252+
253+
- [NGINX ACME module GitHub project](https://github.com/nginx/nginx-acme)
254+
255+
- [Official documentation for the NGINX ACME module](https://nginx.org/en/docs/http/ngx_http_acme_module.html)
256+
257+
- [NGINX Plus technical specifications]({{< ref "/nginx/technical-specs.md" >}})
258+
259+
- [NGINX dynamic modules]({{< ref "dynamic-modules.md" >}})
260+
261+
- [Uninstalling a dynamic module]({{< ref "uninstall.md" >}})

content/nginx/admin-guide/dynamic-modules/dynamic-modules.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ For module‑specific installation and usage instructions, select the correspond
2525
{{< bootstrap-table "table table-striped table-bordered" >}}
2626
| Name | Description | Package name |
2727
|---------------------------------|-----------------------------------|--------------------|
28+
| [ACME](https://github.com/nginx/nginx-acme) | Automatic certificate management ([ACMEv2](https://www.rfc-editor.org/rfc/rfc8555.html)) protocol support. | [`nginx-plus-module-acme`]({{< ref "/nginx/admin-guide/dynamic-modules/acme.md" >}}) |
2829
| [Brotli](https://github.com/google/ngx_brotli) | Brotli compression support with modules for dynamic compression and for serving pre-compressed `.br` files. | [`nginx-plus-module-brotli`]({{< ref "/nginx/admin-guide/dynamic-modules/brotli.md" >}}) |
2930
| [Encrypted-Session](https://github.com/openresty/encrypted-session-nginx-module) | AES-256 based encryption/decryption of NGINX variables. | [`nginx-plus-module-encrypted-session`]({{< ref "/nginx/admin-guide/dynamic-modules/encrypted-session.md" >}}) |
3031
| [FIPS Status Check](https://github.com/ogarrett/nginx-fips-check-module) | Verifies if OpenSSL is operating in FIPS mode. | [`nginx-plus-module-fips-check`]({{< ref "/nginx/admin-guide/dynamic-modules/fips.md" >}})|
@@ -74,6 +75,9 @@ apt-cache search nginx-plus-module
7475
The output of the command:
7576

7677
```shell
78+
nginx-plus-module-acme/stable
79+
NGINX Plus ACME dynamic module
80+
7781
nginx-plus-module-auth-spnego/stable
7882
NGINX Plus 3rd-party kerberos authentication dynamic module
7983

content/nginx/admin-guide/dynamic-modules/opentelemetry.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ The installation process closely follows the [NGINX Plus installation procedure]
4343
Expected output of the command:
4444

4545
```shell
46-
nginx version: nginx/1.27.4 (nginx-plus-r34)
46+
nginx version: nginx/1.29.0 (nginx-plus-r35)
4747
```
4848

4949
3. Ensure you have the **nginx-repo.crt** and **nginx-repo.key** files from [MyF5 Customer Portal](https://account.f5.com/myf5) in the **/etc/ssl/nginx/** directory. These files are required for accessing the NGINX Plus repository.

content/nginx/admin-guide/installing-nginx/installing-nginx-open-source.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ Before installing, check if your operating system and architecture are supported
241241
Expected output:
242242
```shell
243243
HTTP/1.1 200 OK
244-
Server: nginx/1.27.5
244+
Server: nginx/1.29.0
245245
```
246246

247247
After installation, the following files are available for configuration and troubleshooting:
@@ -352,7 +352,7 @@ Before installing, check if your operating system and architecture are supported
352352

353353
```shell
354354
HTTP/1.1 200 OK
355-
Server: nginx/1.27.5
355+
Server: nginx/1.29.0
356356
```
357357

358358
After installation, the following files are available for configuration and troubleshooting:
@@ -459,7 +459,7 @@ Before installing, check if your operating system and architecture are supported
459459

460460
```shell
461461
HTTP/1.1 200 OK
462-
Server: nginx/1.27.5
462+
Server: nginx/1.29.0
463463
```
464464

465465
After installation, the following files are available for configuration and troubleshooting:
@@ -553,7 +553,7 @@ Before installing, check if your operating system and architecture are supported
553553
Expected output:
554554
```shell
555555
HTTP/1.1 200 OK
556-
Server: nginx/1.27.5
556+
Server: nginx/1.29.0
557557
```
558558

559559
After installation, the following files are available for configuration and troubleshooting:
@@ -671,7 +671,7 @@ Before installing, check if your operating system and architecture are supported
671671

672672
```shell
673673
HTTP/1.1 200 OK
674-
Server: nginx/1.27.5
674+
Server: nginx/1.29.0
675675
```
676676

677677
After installation, the following files are available for configuration and troubleshooting:
@@ -764,7 +764,7 @@ Before installing, check if your operating system and architecture are supported
764764
Expected output:
765765
```shell
766766
HTTP/1.1 200 OK
767-
Server: nginx/1.27.5
767+
Server: nginx/1.29.0
768768
```
769769

770770
After installation, the following files are available for configuration and troubleshooting:
@@ -841,7 +841,7 @@ Before installing, check if your operating system and architecture are supported
841841
Expected output:
842842
```shell
843843
HTTP/1.1 200 OK
844-
Server: nginx/1.27.5
844+
Server: nginx/1.29.0
845845
```
846846

847847
After installation, the following files are available for configuration and troubleshooting:
@@ -1017,9 +1017,9 @@ Download the source files for both the stable and mainline versions from [**ngin
10171017
To download and unpack the source for the latest _mainline_ version, run:
10181018
10191019
```shell
1020-
wget https://nginx.org/download/nginx-1.27.5.tar.gz && \
1021-
tar zxf nginx-1.27.5.tar.gz && \
1022-
cd nginx-1.27.5
1020+
wget https://nginx.org/download/nginx-1.29.0.tar.gz && \
1021+
tar zxf nginx-1.29.0.tar.gz && \
1022+
cd nginx-1.29.0
10231023
```
10241024
10251025
To download and unpack source files for the latest _stable_ version, run:

0 commit comments

Comments
 (0)