public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs
@ 2022-05-16 16:27 Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 1/6] docs: silence duplicate label warnings Stoiko Ivanov
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Stoiko Ivanov @ 2022-05-16 16:27 UTC (permalink / raw)
  To: pbs-devel

while trying to add the certificate documentation I noticed a few
(rather harmless) warnings while running make html

patches 1-3 address those and are independent of the certificate
documentation (3-6).

For the certificate docs I took the approach of (semi) automatically
converting the ssl-docs from pmg-docs to rst (asciidoc->docbook (via
asciidoc), docbook->rst (via pandoc)) - the exact commands are
in the commit message of 4/6.

The mid-term idea here would be to have one single source for the common
docs (system-booting, local-zfs and parts of the certificate
documentation come to mind for now) - since keeping them in multiple
places, but with similar/identical content just means that improvments
don't make it to all copies (or only with quite a bit of manual
vimdiffing by the code-reviewers)



Stoiko Ivanov (6):
  docs: silence duplicate label warnings.
  docs: cleanup and readd command-line-tools
  docs: use case-matching keys for glossary
  docs: add certificate-management.rst
  docs: certificates
  docs: certs: add screenshots

 docs/certificate-management.rst               | 331 ++++++++++++++++++
 docs/command-line-tools.rst                   |  27 +-
 docs/command-syntax.rst                       |  10 +
 docs/conf.py                                  |   6 +-
 .../screenshots/pbs-gui-acme-add-domain.png   | Bin 0 -> 11638 bytes
 .../pbs-gui-acme-create-account.png           | Bin 0 -> 19818 bytes
 .../pbs-gui-acme-create-challenge-plugin.png  | Bin 0 -> 24795 bytes
 .../pbs-gui-certs-upload-custom.png           | Bin 0 -> 34209 bytes
 docs/introduction.rst                         |  21 +-
 docs/sysadmin.rst                             |   4 +
 docs/terminology.rst                          |  11 +-
 11 files changed, 387 insertions(+), 23 deletions(-)
 create mode 100644 docs/certificate-management.rst
 create mode 100644 docs/images/screenshots/pbs-gui-acme-add-domain.png
 create mode 100644 docs/images/screenshots/pbs-gui-acme-create-account.png
 create mode 100644 docs/images/screenshots/pbs-gui-acme-create-challenge-plugin.png
 create mode 100644 docs/images/screenshots/pbs-gui-certs-upload-custom.png

-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 1/6] docs: silence duplicate label warnings.
  2022-05-16 16:27 [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Stoiko Ivanov
@ 2022-05-16 16:27 ` Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 2/6] docs: cleanup and readd command-line-tools Stoiko Ivanov
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Stoiko Ivanov @ 2022-05-16 16:27 UTC (permalink / raw)
  To: pbs-devel

by reindroducing the trailing ',' after local-zfs.rst
and adding the missing 'traffic-control.rst' to the list
of files/patterns to be excluded.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 docs/conf.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index 2a189ba6..a7c2b8bd 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -111,9 +111,10 @@ exclude_patterns = [
     'config/*/man5.rst',
     'epilog.rst',
     'pbs-copyright.rst',
-    'local-zfs.rst'
+    'local-zfs.rst',
     'package-repositories.rst',
-    'system-booting.rst'
+    'system-booting.rst',
+    'traffic-control.rst',
 ]
 
 # The reST default role (used for this markup: `text`) to use for all
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 2/6] docs: cleanup and readd command-line-tools
  2022-05-16 16:27 [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 1/6] docs: silence duplicate label warnings Stoiko Ivanov
@ 2022-05-16 16:27 ` Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 3/6] docs: use case-matching keys for glossary Stoiko Ivanov
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Stoiko Ivanov @ 2022-05-16 16:27 UTC (permalink / raw)
  To: pbs-devel

the collection of descriptions of our cli tools was dropped in
04e24b14f0c51f01a1f8afe2d0eff124c1095758

I'll readd it to the sysadmin.rst, since the (related) service daemons
also got moved here.

additionally add the newly added cli-tools to both
command-line-tools.rst and command-syntax.rst, and put both in the same
order

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 docs/command-line-tools.rst | 27 +++++++++++++++++++++------
 docs/command-syntax.rst     | 10 ++++++++++
 docs/sysadmin.rst           |  2 ++
 3 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/docs/command-line-tools.rst b/docs/command-line-tools.rst
index 37606f46..01d3e005 100644
--- a/docs/command-line-tools.rst
+++ b/docs/command-line-tools.rst
@@ -6,22 +6,37 @@ Command Line Tools
 
 .. include:: proxmox-backup-client/description.rst
 
-``proxmox-file-restore``
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. include:: proxmox-file-restore/description.rst
-
 ``proxmox-backup-manager``
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. include:: proxmox-backup-manager/description.rst
 
+``proxmox-tape``
+~~~~~~~~~~~~~~~~
+
+.. include:: proxmox-tape/description.rst
+
+``pmt``
+~~~~~~~
+
+.. include:: pmt/description.rst
+
+``pmtx``
+~~~~~~~~
+
+.. include:: pmtx/description.rst
+
 ``pxar``
 ~~~~~~~~
 
 .. include:: pxar/description.rst
 
+``proxmox-file-restore``
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. include:: proxmox-file-restore/description.rst
+
 ``proxmox-backup-debug``
-~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. include:: proxmox-backup-debug/description.rst
diff --git a/docs/command-syntax.rst b/docs/command-syntax.rst
index 86dbd4a9..a24b9cdc 100644
--- a/docs/command-syntax.rst
+++ b/docs/command-syntax.rst
@@ -51,3 +51,13 @@ The following commands are available in an interactive restore shell:
 --------
 
 .. include:: pxar/synopsis.rst
+
+
+``proxmox-file-restore``
+------------------------
+.. include:: proxmox-file-restore/synopsis.rst
+
+
+``proxmox-backup-debug``
+------------------------
+.. include:: proxmox-backup-debug/synopsis.rst
diff --git a/docs/sysadmin.rst b/docs/sysadmin.rst
index b156acc9..21b7840c 100644
--- a/docs/sysadmin.rst
+++ b/docs/sysadmin.rst
@@ -29,3 +29,5 @@ please refer to the standard Debian documentation.
 .. include:: system-booting.rst
 
 .. include:: services.rst
+
+.. include:: command-line-tools.rst
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 3/6] docs: use case-matching keys for glossary
  2022-05-16 16:27 [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 1/6] docs: silence duplicate label warnings Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 2/6] docs: cleanup and readd command-line-tools Stoiko Ivanov
@ 2022-05-16 16:27 ` Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 4/6] docs: add certificate-management.rst Stoiko Ivanov
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Stoiko Ivanov @ 2022-05-16 16:27 UTC (permalink / raw)
  To: pbs-devel

this silences warnings a la:
```
WARNING: term container not found in case sensitive match.made a
reference to Container instead
```
the issue is purely cosmetic during build, and should vanish in a newer
version of sphinx-doc [0].

[0] https://github.com/sphinx-doc/sphinx/issues/7636

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 docs/introduction.rst | 21 +++++++++++----------
 docs/terminology.rst  | 11 ++++++-----
 2 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/docs/introduction.rst b/docs/introduction.rst
index ed1816d3..47b5d606 100644
--- a/docs/introduction.rst
+++ b/docs/introduction.rst
@@ -5,10 +5,11 @@ What is Proxmox Backup Server?
 ------------------------------
 
 Proxmox Backup Server is an enterprise-class, client-server backup solution that
-is capable of backing up :term:`virtual machine`\ s, :term:`container`\ s, and
-physical hosts. It is specially optimized for the `Proxmox Virtual Environment`_
-platform and allows you to back up your data securely, even between remote
-sites, providing easy management through a web-based user interface.
+is capable of backing up :term:`virtual machine<Virtual machine>`\ s,
+:term:`container<Container>`\ s, and physical hosts. It is specially optimized
+for the `Proxmox Virtual Environment`_ platform and allows you to back up your
+data securely, even between remote sites, providing easy management through a
+web-based user interface.
 
 It supports deduplication, compression, and authenticated
 encryption (AE_). Using :term:`Rust` as the implementation language guarantees
@@ -34,18 +35,18 @@ For QEMU_ and LXC_ within `Proxmox Virtual Environment`_, we deliver an
 integrated client.
 
 A single backup is allowed to contain several archives. For example, when you
-backup a :term:`virtual machine`, each disk is stored as a separate archive
-inside that backup. The VM configuration itself is stored as an extra file.
-This way, it's easy to access and restore only the important parts of the
-backup, without the need to scan the whole backup.
+backup a :term:`virtual machine<Virtual machine>`, each disk is stored as a
+separate archive inside that backup. The VM configuration itself is stored as
+an extra file.  This way, it's easy to access and restore only the important
+parts of the backup, without the need to scan the whole backup.
 
 
 Main Features
 -------------
 
 :Support for Proxmox VE: The `Proxmox Virtual Environment`_ is fully
-   supported, and you can easily backup :term:`virtual machine`\ s and
-   :term:`container`\ s.
+   supported, and you can easily backup :term:`virtual machine<Virtual machine>`\ s and
+   :term:`container<Container>`\ s.
 
 :Performance: The whole software stack is written in :term:`Rust`,
    in order to provide high speed and memory efficiency.
diff --git a/docs/terminology.rst b/docs/terminology.rst
index c5551818..1e12f9c1 100644
--- a/docs/terminology.rst
+++ b/docs/terminology.rst
@@ -68,13 +68,14 @@ Backup Type
 The backup server groups backups by *type*, where *type* is one of:
 
 ``vm``
-    This type is used for :term:`virtual machine`\ s. It typically
-    consists of the virtual machine's configuration file and an image archive
-    for each disk.
+    This type is used for :term:`virtual machine<Virtual machine>`\ s. It
+    typically consists of the virtual machine's configuration file and an image
+    archive for each disk.
 
 ``ct``
-    This type is used for :term:`container`\ s. It consists of the container's
-    configuration and a single file archive for the filesystem's contents.
+    This type is used for :term:`container<Container>`\ s. It consists of the
+    container's configuration and a single file archive for the filesystem's
+    contents.
 
 ``host``
     This type is used for file/directory backups created from within a machine.
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 4/6] docs: add certificate-management.rst
  2022-05-16 16:27 [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Stoiko Ivanov
                   ` (2 preceding siblings ...)
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 3/6] docs: use case-matching keys for glossary Stoiko Ivanov
@ 2022-05-16 16:27 ` Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 5/6] docs: certificates Stoiko Ivanov
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Stoiko Ivanov @ 2022-05-16 16:27 UTC (permalink / raw)
  To: pbs-devel

the file certificate-managment.rst is generated from the pmg-docs repo

by running:
```
asciidoc -b $(pwd)/asciidoc/pmg-docbook \
-f asciidoc/asciidoc-pmg.conf -o - pmg-ssl-certificate.adoc | \
pandoc -f docbook -t rst --shift-heading-level-by=1 \
-o certificate-mangement-auto.rst

sed -ri 's/__/_/' certificate-mangement-auto.rst
sed -ri 's/\{pmg\}/`Proxmox Backup`_/g' certificate-mangement-auto.rst
sed -ri 's/\{PMG\}/`Proxmox Backup`_/g' certificate-mangement-auto.rst
sed -ri 's/Proxmox Mail Gateway/`Proxmox Backup`_/g' \
certificate-mangement-auto.rst
sed -ri 's/pmg-([a-zA-Z0-9_-]*).png/pbs-\1.png/g' \
certificate-mangement-auto.rst
sed -ri 's/pmgproxy/proxmox-backup-proxy/g' \
certificate-mangement-auto.rst
sed -ri 's/pmgconfig/proxmox-backup-manager/g' \
certificate-mangement-auto.rst
sed -ri 's/pmg-daily/proxmox-backup-daily-update/g' \
certificate-mangement-auto.rst
sed -ri 's/\/etc\/pmg\/node.conf/\/etc\/proxmox-backup\/node.cfg/g' \
certificate-mangement-auto.rst
sed -ri 's/\/etc\/pmg\/acme/\/etc\/proxmox-backup\/acme/g' \
certificate-mangement-auto.rst
sed -ri \
's/\/etc\/pmg\/pmg-api.pem/\/etc\/proxmox-backup\/proxy.pem/g' \
certificate-mangement-auto.rst
sed -ri 's/screenshot/screenshots/g' certificate-mangement-auto.rst

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 docs/certificate-management.rst | 359 ++++++++++++++++++++++++++++++++
 docs/conf.py                    |   1 +
 docs/sysadmin.rst               |   2 +
 3 files changed, 362 insertions(+)
 create mode 100644 docs/certificate-management.rst

diff --git a/docs/certificate-management.rst b/docs/certificate-management.rst
new file mode 100644
index 00000000..e09be966
--- /dev/null
+++ b/docs/certificate-management.rst
@@ -0,0 +1,359 @@
+.. _sysadmin_certificate_management:
+
+Certificate Management
+----------------------
+
+Access to the web-based administration interface is always encrypted
+through ``https``. Each `Proxmox Backup`_ host creates by default its
+own (self-signed) certificate. This certificate is used for encrypted
+communication with the host’s ``proxmox-backup-proxy`` service, for any API call
+between a user and the web-interface or between nodes in a cluster.
+
+Certificate verification in a `Proxmox Backup`_ cluster is done based
+on pinning the certificate fingerprints in the cluster configuration and
+verifying that they match on connection.
+
+.. _sysadmin_certs_api_gui:
+
+Certificates for the API and SMTP
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`Proxmox Backup`_ uses two different certificates:
+
+-  ``/etc/proxmox-backup/proxy.pem``: the required certificate used for Proxmox
+   Mail Gateway API requests.
+
+-  ``/etc/pmg/pmg-tls.pem``: the optional certificate used for SMTP TLS
+   connections, see `mailproxy TLS
+   configuration <#proxmox-backup-manager_mailproxy_tls>`_
+   `??? <#proxmox-backup-manager_mailproxy_tls>`_ for details.
+
+You have the following options for these certificates:
+
+1. Keep using the default self-signed certificate in
+   ``/etc/proxmox-backup/proxy.pem``.
+
+2. Use an externally provided certificate (for example, signed by a
+   commercial Certificate Authority (CA)).
+
+3. Use an ACME provider like Let’s Encrypt to get a trusted certificate
+   with automatic renewal; this is also integrated in the Proxmox Mail
+   Gateway API and web interface.
+
+Certificates are managed through the `Proxmox Backup`_
+web-interface/API or using the the ``proxmox-backup-manager`` CLI tool.
+
+.. _sysadmin_certs_upload_custom:
+
+Upload Custom Certificate
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you already have a certificate which you want to use for a Proxmox
+Mail Gateway host, you can simply upload that certificate over the web
+interface.
+
+|pbs-gui-certs-upload-custom.png|
+
+Note that any certificate key files must not be password protected.
+
+.. _sysadmin_certs_get_trusted_acme_cert:
+
+Trusted certificates via Let’s Encrypt (ACME)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`Proxmox Backup`_ includes an implementation of the **A**\ utomatic
+**C**\ ertificate **M**\ anagement **E**\ nvironment (**ACME**)
+protocol, allowing `Proxmox Backup`_ admins to use an ACME provider
+like Let’s Encrypt for easy setup of TLS certificates, which are
+accepted and trusted by modern operating systems and web browsers out of
+the box.
+
+Currently, the two ACME endpoints implemented are the `Let’s Encrypt
+(LE) <https://letsencrypt.org>`_ production and staging environments.
+Our ACME client supports validation of ``http-01`` challenges using a
+built-in web server and validation of ``dns-01`` challenges using a DNS
+plugin supporting all the DNS API endpoints
+`acme.sh <https://acme.sh>`_ does.
+
+.. _sysadmin_certs_acme_account:
+
+ACME Account
+^^^^^^^^^^^^
+
+|pbs-gui-acme-create-account.png|
+
+You need to register an ACME account per cluster, with the endpoint you
+want to use. The email address used for that account will serve as the
+contact point for renewal-due or similar notifications from the ACME
+endpoint.
+
+You can register or deactivate ACME accounts over the web interface
+``Certificates -> ACME Accounts`` or using the ``proxmox-backup-manager`` command
+line tool.
+
+::
+
+    proxmox-backup-manager acme account register <account-name> <mail@example.com>
+
+.. tip::
+
+   Because of
+   `rate-limits <https://letsencrypt.org/docs/rate-limits/>`_ you
+   should use LE ``staging`` for experiments or if you use ACME for the
+   very first time until all is working there, and only then switch over
+   to the production directory.
+
+.. _sysadmin_certs_acme_plugins:
+
+ACME Plugins
+^^^^^^^^^^^^
+
+The ACME plugin’s role is to provide automatic verification that you,
+and thus the `Proxmox Backup`_ cluster under your operation, are the
+real owner of a domain. This is the basic building block of automatic
+certificate management.
+
+The ACME protocol specifies different types of challenges, for example
+the ``http-01``, where a web server provides a file with a specific
+token to prove that it controls a domain. Sometimes this isn’t possible,
+either because of technical limitations or if the address of a record is
+not reachable from the public internet. The ``dns-01`` challenge can be
+used in such cases. This challenge is fulfilled by creating a certain
+DNS record in the domain’s zone.
+
+|pbs-gui-acme-create-challenge-plugin.png|
+
+`Proxmox Backup`_ supports both of those challenge types out of the
+box, you can configure plugins either over the web interface under
+``Certificates -> ACME Challenges``, or using the
+``proxmox-backup-manager acme plugin add`` command.
+
+ACME Plugin configurations are stored in ``/etc/proxmox-backup/acme/plugins.cfg``.
+A plugin is available for all nodes in the cluster.
+
+.. _domains:
+
+Domains
+^^^^^^^
+
+You can add new or manage existing domain entries under
+``Certificates``, or using the ``proxmox-backup-manager`` command.
+
+|pbs-gui-acme-add-domain.png|
+
+After configuring the desired domain(s) for a node and ensuring that the
+desired ACME account is selected, you can order your new certificate
+over the web-interface. On success, the interface will reload after
+roughly 10 seconds.
+
+Renewal will happen
+`automatically <#sysadmin_certs_acme_automatic_renewal>`_ `Automatic
+renewal of ACME
+certificates <#sysadmin_certs_acme_automatic_renewal>`_.
+
+.. _sysadmin_certs_acme_http_challenge:
+
+ACME HTTP Challenge Plugin
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+There is always an implicitly configured ``standalone`` plugin for
+validating ``http-01`` challenges via the built-in web server spawned on
+port 80.
+
+.. note::
+
+   The name ``standalone`` means that it can provide the validation on
+   its own, without any third party service. So this plugin also works
+   for cluster nodes.
+
+There are a few prerequisites to use this for certificate management
+with Let’s Encrypts ACME.
+
+-  You have to accept the ToS of Let’s Encrypt to register an account.
+
+-  **Port 80** of the node needs to be reachable from the internet.
+
+-  There **must** be no other listener on port 80.
+
+-  The requested (sub)domain needs to resolve to a public IP of the
+   `Proxmox Backup`_ host.
+
+.. _sysadmin_certs_acme_dns_challenge:
+
+ACME DNS API Challenge Plugin
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+On systems where external access for validation via the ``http-01``
+method is not possible or desired, it is possible to use the ``dns-01``
+validation method. This validation method requires a DNS server that
+allows provisioning of ``TXT`` records via an API.
+
+.. _sysadmin_certs_acme_dns_api_config:
+
+Configuring ACME DNS APIs for validation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+`Proxmox Backup`_ re-uses the DNS plugins developed for the
+``acme.sh``  [1]_ project. Please refer to its documentation for details
+on configuration of specific APIs.
+
+The easiest way to configure a new plugin with the DNS API is using the
+web interface (``Certificates -> ACME Accounts/Challenges``).
+
+|pbs-gui-acme-create-challenge-plugin.png|
+
+Here you can add a new challenge plugin by selecting your API provider
+and entering the credential data to access your account over their API.
+
+.. tip::
+
+   See the acme.sh `How to use DNS
+   API <https://github.com/acmesh-official/acme.sh/wiki/dnsapi#how-to-use-dns-api>`_
+   wiki for more detailed information about getting API credentials for
+   your provider. Configuration values do not need to be quoted with
+   single or double quotes; for some plugins that is even an error.
+
+As there are many DNS providers and API endpoints, `Proxmox Backup`_
+automatically generates the form for the credentials, but not all
+providers are annotated yet. For those you will see a bigger text area,
+into which you simply need to copy all the credential’s
+``KEY``\ =\ ``VALUE`` pairs.
+
+.. _dns_validation_through_cname_alias:
+
+DNS Validation through CNAME Alias
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A special ``alias`` mode can be used to handle validation on a different
+domain/DNS server, in case your primary/real DNS does not support
+provisioning via an API. Manually set up a permanent ``CNAME`` record
+for ``_acme-challenge.domain1.example`` pointing to
+``_acme-challenge.domain2.example``, and set the ``alias`` property in
+the `Proxmox Backup`_ node configuration file ``/etc/proxmox-backup/node.cfg``
+to ``domain2.example`` to allow the DNS server of ``domain2.example`` to
+validate all challenges for ``domain1.example``.
+
+.. _sysadmin_certs_acme_dns_wildcard:
+
+Wildcard Certificates
+^^^^^^^^^^^^^^^^^^^^^
+
+Wildcard DNS names start with a ``*.`` prefix and are considered valid
+for all (one-level) subdomain names of the verified domain. So a
+certificate for ``*.domain.example`` is valid for ``foo.domain.example``
+and ``bar.domain.example``, but not for ``baz.foo.domain.example``.
+
+Currently, you can only create wildcard certificates with the `DNS
+challenge
+type <https://letsencrypt.org/docs/challenge-types/#dns-01-challenge>`_.
+
+.. _combination_of_plugins:
+
+Combination of Plugins
+^^^^^^^^^^^^^^^^^^^^^^
+
+Combining ``http-01`` and ``dns-01`` validation is possible in case your
+node is reachable via multiple domains with different requirements / DNS
+provisioning capabilities. Mixing DNS APIs from multiple providers or
+instances is also possible by specifying different plugin instances per
+domain.
+
+.. tip::
+
+   Accessing the same service over multiple domains increases complexity
+   and should be avoided if possible.
+
+.. _sysadmin_certs_acme_automatic_renewal:
+
+Automatic renewal of ACME certificates
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If a node has been successfully configured with an ACME-provided
+certificate (either via proxmox-backup-manager or via the web-interface/API), the
+certificate will be renewed automatically by the ``proxmox-backup-daily-update.service``.
+Currently, renewal is triggered if the certificate either has already
+expired or if it will expire in the next 30 days.
+
+.. _manually_change_certificate_over_command_line:
+
+Manually Change Certificate over Command-Line
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you want to get rid of certificate verification warnings, you have to
+generate a valid certificate for your server.
+
+Log in to your `Proxmox Backup`_ via ssh or use the console:
+
+::
+
+   openssl req -newkey rsa:2048 -nodes -keyout key.pem -out req.pem
+
+Follow the instructions on the screen, for example:
+
+::
+
+   Country Name (2 letter code) [AU]: AT
+   State or Province Name (full name) [Some-State]:Vienna
+   Locality Name (eg, city) []:Vienna
+   Organization Name (eg, company) [Internet Widgits Pty Ltd]: Proxmox GmbH
+   Organizational Unit Name (eg, section) []:`Proxmox Backup`_
+   Common Name (eg, YOUR name) []: yourproxmox.yourdomain.com
+   Email Address []:support@yourdomain.com
+
+   Please enter the following 'extra' attributes to be sent with your certificate request
+   A challenge password []: not necessary
+   An optional company name []: not necessary
+
+After you have finished the certificate request, you have to send the
+file ``req.pem`` to your Certification Authority (CA). The CA will issue
+the certificate (BASE64 encoded), based on your request – save this file
+as ``cert.pem`` to your `Proxmox Backup`_.
+
+To activate the new certificate, do the following on your Proxmox Mail
+Gateway:
+
+::
+
+   cat key.pem cert.pem >/etc/proxmox-backup/proxy.pem
+
+Then restart the API servers:
+
+::
+
+   systemctl restart proxmox-backup-proxy
+
+Test your new certificate, using your browser.
+
+.. note::
+
+   To transfer files to and from your `Proxmox Backup`_, you can use
+   secure copy: If your desktop runs Linux, you can use the ``scp``
+   command line tool. If your desktop PC runs windows, please use an scp
+   client like WinSCP (see https://winscp.net/).
+
+.. _change_certificate_for_cluster_setups:
+
+Change Certificate for Cluster Setups
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you change the API certificate of an active cluster node manually,
+you also need to update the pinned fingerprint inside the cluster
+configuration.
+
+You can do that by executing the following command on the host where the
+certificate changed:
+
+::
+
+   pmgcm update-fingerprints
+
+Note, this will be done automatically if using the integrated ACME (for
+example, through Let’s Encrypt) feature.
+
+.. [1]
+   acme.sh https://github.com/acmesh-official/acme.sh
+
+.. |pbs-gui-certs-upload-custom.png| image:: images/screenshots/pbs-gui-certs-upload-custom.png
+.. |pbs-gui-acme-create-account.png| image:: images/screenshots/pbs-gui-acme-create-account.png
+.. |pbs-gui-acme-create-challenge-plugin.png| image:: images/screenshots/pbs-gui-acme-create-challenge-plugin.png
+.. |pbs-gui-acme-add-domain.png| image:: images/screenshots/pbs-gui-acme-add-domain.png
diff --git a/docs/conf.py b/docs/conf.py
index a7c2b8bd..2c212dee 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -108,6 +108,7 @@ today_fmt = '%A, %d %B %Y'
 exclude_patterns = [
     '_build', 'Thumbs.db', '.DS_Store',
     '*/man1.rst',
+    'certificate-management.rst',
     'config/*/man5.rst',
     'epilog.rst',
     'pbs-copyright.rst',
diff --git a/docs/sysadmin.rst b/docs/sysadmin.rst
index 21b7840c..7440d201 100644
--- a/docs/sysadmin.rst
+++ b/docs/sysadmin.rst
@@ -28,6 +28,8 @@ please refer to the standard Debian documentation.
 
 .. include:: system-booting.rst
 
+.. include:: certificate-management.rst
+
 .. include:: services.rst
 
 .. include:: command-line-tools.rst
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 5/6] docs: certificates
  2022-05-16 16:27 [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Stoiko Ivanov
                   ` (3 preceding siblings ...)
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 4/6] docs: add certificate-management.rst Stoiko Ivanov
@ 2022-05-16 16:27 ` Stoiko Ivanov
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 6/6] docs: certs: add screenshots Stoiko Ivanov
  2022-05-16 17:28 ` [pbs-devel] applied: [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Thomas Lamprecht
  6 siblings, 0 replies; 8+ messages in thread
From: Stoiko Ivanov @ 2022-05-16 16:27 UTC (permalink / raw)
  To: pbs-devel

manually adapt to differences between PMG and PBS

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 docs/certificate-management.rst | 70 ++++++++++-----------------------
 1 file changed, 21 insertions(+), 49 deletions(-)

diff --git a/docs/certificate-management.rst b/docs/certificate-management.rst
index e09be966..ea7748d3 100644
--- a/docs/certificate-management.rst
+++ b/docs/certificate-management.rst
@@ -3,32 +3,28 @@
 Certificate Management
 ----------------------
 
-Access to the web-based administration interface is always encrypted
-through ``https``. Each `Proxmox Backup`_ host creates by default its
+Access to the API and thus the web-based administration interface is always
+encrypted through ``https``. Each `Proxmox Backup`_ host creates by default its
 own (self-signed) certificate. This certificate is used for encrypted
-communication with the host’s ``proxmox-backup-proxy`` service, for any API call
-between a user and the web-interface or between nodes in a cluster.
+communication with the host’s ``proxmox-backup-proxy`` service, for any API
+call between a user or backup-client and the web-interface.
 
-Certificate verification in a `Proxmox Backup`_ cluster is done based
-on pinning the certificate fingerprints in the cluster configuration and
-verifying that they match on connection.
+Certificate verification when sending backups to a `Proxmox Backup`_ server
+is either done based on pinning the certificate fingerprints in the storage/remote
+configuration, or by using certificates, signed by a trusted certificate authority.
 
 .. _sysadmin_certs_api_gui:
 
 Certificates for the API and SMTP
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-`Proxmox Backup`_ uses two different certificates:
+`Proxmox Backup`_ stores it certificate and key in:
 
--  ``/etc/proxmox-backup/proxy.pem``: the required certificate used for Proxmox
-   Mail Gateway API requests.
+-  ``/etc/proxmox-backup/proxy.pem``
 
--  ``/etc/pmg/pmg-tls.pem``: the optional certificate used for SMTP TLS
-   connections, see `mailproxy TLS
-   configuration <#proxmox-backup-manager_mailproxy_tls>`_
-   `??? <#proxmox-backup-manager_mailproxy_tls>`_ for details.
+-  ``/etc/proxmox-backup/proxy.key``
 
-You have the following options for these certificates:
+You have the following options for the certificate:
 
 1. Keep using the default self-signed certificate in
    ``/etc/proxmox-backup/proxy.pem``.
@@ -37,8 +33,8 @@ You have the following options for these certificates:
    commercial Certificate Authority (CA)).
 
 3. Use an ACME provider like Let’s Encrypt to get a trusted certificate
-   with automatic renewal; this is also integrated in the Proxmox Mail
-   Gateway API and web interface.
+   with automatic renewal; this is also integrated in the `Proxmox Backup`_
+   API and web interface.
 
 Certificates are managed through the `Proxmox Backup`_
 web-interface/API or using the the ``proxmox-backup-manager`` CLI tool.
@@ -109,7 +105,7 @@ ACME Plugins
 ^^^^^^^^^^^^
 
 The ACME plugin’s role is to provide automatic verification that you,
-and thus the `Proxmox Backup`_ cluster under your operation, are the
+and thus the `Proxmox Backup`_ server under your operation, are the
 real owner of a domain. This is the basic building block of automatic
 certificate management.
 
@@ -129,7 +125,6 @@ box, you can configure plugins either over the web interface under
 ``proxmox-backup-manager acme plugin add`` command.
 
 ACME Plugin configurations are stored in ``/etc/proxmox-backup/acme/plugins.cfg``.
-A plugin is available for all nodes in the cluster.
 
 .. _domains:
 
@@ -146,10 +141,7 @@ desired ACME account is selected, you can order your new certificate
 over the web-interface. On success, the interface will reload after
 roughly 10 seconds.
 
-Renewal will happen
-`automatically <#sysadmin_certs_acme_automatic_renewal>`_ `Automatic
-renewal of ACME
-certificates <#sysadmin_certs_acme_automatic_renewal>`_.
+Renewal will happen `automatically <#sysadmin-certs-acme-automatic-renewal>`_
 
 .. _sysadmin_certs_acme_http_challenge:
 
@@ -163,8 +155,7 @@ port 80.
 .. note::
 
    The name ``standalone`` means that it can provide the validation on
-   its own, without any third party service. So this plugin also works
-   for cluster nodes.
+   its own, without any third party service.
 
 There are a few prerequisites to use this for certificate management
 with Let’s Encrypts ACME.
@@ -269,7 +260,7 @@ Automatic renewal of ACME certificates
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If a node has been successfully configured with an ACME-provided
-certificate (either via proxmox-backup-manager or via the web-interface/API), the
+certificate (either via ``proxmox-backup-manager`` or via the web-interface/API), the
 certificate will be renewed automatically by the ``proxmox-backup-daily-update.service``.
 Currently, renewal is triggered if the certificate either has already
 expired or if it will expire in the next 30 days.
@@ -296,7 +287,7 @@ Follow the instructions on the screen, for example:
    State or Province Name (full name) [Some-State]:Vienna
    Locality Name (eg, city) []:Vienna
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: Proxmox GmbH
-   Organizational Unit Name (eg, section) []:`Proxmox Backup`_
+   Organizational Unit Name (eg, section) []:Proxmox Backup
    Common Name (eg, YOUR name) []: yourproxmox.yourdomain.com
    Email Address []:support@yourdomain.com
 
@@ -309,12 +300,12 @@ file ``req.pem`` to your Certification Authority (CA). The CA will issue
 the certificate (BASE64 encoded), based on your request – save this file
 as ``cert.pem`` to your `Proxmox Backup`_.
 
-To activate the new certificate, do the following on your Proxmox Mail
-Gateway:
+To activate the new certificate, do the following on your `Proxmox Backup`_
 
 ::
 
-   cat key.pem cert.pem >/etc/proxmox-backup/proxy.pem
+   cp key.pem /etc/proxmox-backup/proxy.key
+   cp cert.pem /etc/proxmox-backup/proxy.pem
 
 Then restart the API servers:
 
@@ -331,25 +322,6 @@ Test your new certificate, using your browser.
    command line tool. If your desktop PC runs windows, please use an scp
    client like WinSCP (see https://winscp.net/).
 
-.. _change_certificate_for_cluster_setups:
-
-Change Certificate for Cluster Setups
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you change the API certificate of an active cluster node manually,
-you also need to update the pinned fingerprint inside the cluster
-configuration.
-
-You can do that by executing the following command on the host where the
-certificate changed:
-
-::
-
-   pmgcm update-fingerprints
-
-Note, this will be done automatically if using the integrated ACME (for
-example, through Let’s Encrypt) feature.
-
 .. [1]
    acme.sh https://github.com/acmesh-official/acme.sh
 
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 6/6] docs: certs: add screenshots
  2022-05-16 16:27 [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Stoiko Ivanov
                   ` (4 preceding siblings ...)
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 5/6] docs: certificates Stoiko Ivanov
@ 2022-05-16 16:27 ` Stoiko Ivanov
  2022-05-16 17:28 ` [pbs-devel] applied: [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Thomas Lamprecht
  6 siblings, 0 replies; 8+ messages in thread
From: Stoiko Ivanov @ 2022-05-16 16:27 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 .../screenshots/pbs-gui-acme-add-domain.png     | Bin 0 -> 11638 bytes
 .../screenshots/pbs-gui-acme-create-account.png | Bin 0 -> 19818 bytes
 .../pbs-gui-acme-create-challenge-plugin.png    | Bin 0 -> 24795 bytes
 .../screenshots/pbs-gui-certs-upload-custom.png | Bin 0 -> 34209 bytes
 4 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 docs/images/screenshots/pbs-gui-acme-add-domain.png
 create mode 100644 docs/images/screenshots/pbs-gui-acme-create-account.png
 create mode 100644 docs/images/screenshots/pbs-gui-acme-create-challenge-plugin.png
 create mode 100644 docs/images/screenshots/pbs-gui-certs-upload-custom.png

diff --git a/docs/images/screenshots/pbs-gui-acme-add-domain.png b/docs/images/screenshots/pbs-gui-acme-add-domain.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5b46038a8f5d5b54e9195423afefb0aa19a7dfc
GIT binary patch
literal 11638
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

literal 0
HcmV?d00001

diff --git a/docs/images/screenshots/pbs-gui-acme-create-account.png b/docs/images/screenshots/pbs-gui-acme-create-account.png
new file mode 100644
index 0000000000000000000000000000000000000000..264e05343f4f762668c897c137397bb4e4711f32
GIT binary patch
literal 19818
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
H^}D|V56pjo

literal 0
HcmV?d00001

diff --git a/docs/images/screenshots/pbs-gui-acme-create-challenge-plugin.png b/docs/images/screenshots/pbs-gui-acme-create-challenge-plugin.png
new file mode 100644
index 0000000000000000000000000000000000000000..c383e2bbe5522f66c0d43dab4be6f4897aa5c445
GIT binary patch
literal 24795
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
a*xm^Q2EAB=kJbVQp{OXTE0oHa2mA}BLglOg

literal 0
HcmV?d00001

diff --git a/docs/images/screenshots/pbs-gui-certs-upload-custom.png b/docs/images/screenshots/pbs-gui-certs-upload-custom.png
new file mode 100644
index 0000000000000000000000000000000000000000..534cf9cfca9132a07264794e2125f5116f5f51ac
GIT binary patch
literal 34209
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
OXkck2sVWJR;Qt5sdAyha

literal 0
HcmV?d00001

-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs
  2022-05-16 16:27 [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Stoiko Ivanov
                   ` (5 preceding siblings ...)
  2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 6/6] docs: certs: add screenshots Stoiko Ivanov
@ 2022-05-16 17:28 ` Thomas Lamprecht
  6 siblings, 0 replies; 8+ messages in thread
From: Thomas Lamprecht @ 2022-05-16 17:28 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Stoiko Ivanov

Am 5/16/22 um 18:27 schrieb Stoiko Ivanov:
> while trying to add the certificate documentation I noticed a few
> (rather harmless) warnings while running make html
> 
> patches 1-3 address those and are independent of the certificate
> documentation (3-6).
> 
> For the certificate docs I took the approach of (semi) automatically
> converting the ssl-docs from pmg-docs to rst (asciidoc->docbook (via
> asciidoc), docbook->rst (via pandoc)) - the exact commands are
> in the commit message of 4/6.
> 
> The mid-term idea here would be to have one single source for the common
> docs (system-booting, local-zfs and parts of the certificate
> documentation come to mind for now) - since keeping them in multiple
> places, but with similar/identical content just means that improvments
> don't make it to all copies (or only with quite a bit of manual
> vimdiffing by the code-reviewers)
> 

applied, thanks!

But replaced the odd image-referencing with just placing them inline, and align
to a side plus add an alt text like we do for most others.
Also removed a duplicate usage of showing the challenge plugins screenshot.




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-05-16 17:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-16 16:27 [pbs-devel] [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Stoiko Ivanov
2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 1/6] docs: silence duplicate label warnings Stoiko Ivanov
2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 2/6] docs: cleanup and readd command-line-tools Stoiko Ivanov
2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 3/6] docs: use case-matching keys for glossary Stoiko Ivanov
2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 4/6] docs: add certificate-management.rst Stoiko Ivanov
2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 5/6] docs: certificates Stoiko Ivanov
2022-05-16 16:27 ` [pbs-devel] [PATCH proxmox-backup 6/6] docs: certs: add screenshots Stoiko Ivanov
2022-05-16 17:28 ` [pbs-devel] applied: [PATCH proxmox-backup 0/6] docs: cleanup and add certificate docs Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal