APACHE CERTBOT-FEHLER

APACHE CERTBOT-FEHLER

Ich konfiguriere https auf einem lokalen Apache-Server mithilfe von Certbot, erhalte jedoch die folgende Fehlermeldung:

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: www.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for digierp.com
Enabled Apache rewrite module
Waiting for verification...
Challenge failed for domain digierp.com
http-01 challenge for digierp.com
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: www.example.com
   Type:   connection
   Detail: 110.40.19...: Fetching
   http://example.com/.well-known/acme-challenge/X3IbvKI9gbZu1.........:
   Connection refused

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

Dies ist meine Datei /etc/apache2/sites-available/exapmlee.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName examplee
    ServerAlias www.example.com
    DocumentRoot /var/www/examplee
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Wenn ich example.com durchsuche, erhalte ich Folgendes

;; ANSWER SECTION:
example.com.        0   IN  A   127.0.0.1

/etc/hosts

127.0.0.1       localhost
127.0.1.1       digierp-Joy

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

127.0.0.1       example.com

Woher bekommt das System diese IP 110.40.19...?

Irgendwelche Vorschläge zu dem oben genannten Fehler?

Antwort1

Meta: Ich habe Ihre Formatierung korrigiert und # wiederhergestellt, was eigentlich ein notwendiger Teil der Syntax von /etc/hosts ist; klicken Sie bitte auf das ?-Symbol im Bearbeitungsfenster und lesen Sie die Hilfe für „Code“ (und möglicherweise auch andere).

Beachten Sie, dass dies www.{something}nicht dasselbe ist {something}wieMaidenselben Adressen? und Hosts? zuordnen.

Aus dem Protokoll geht hervor, dass Sie tatsächlich ein Zertifikat anfordern, für digierp.comdas im öffentlichen DNS die Adresse 110.40.197.199 zugeordnet ist, und www.digierp.comdas ebenfalls Certbot für die Konfiguration hätte anfordern sollen, die Sie sozusagen anzeigen, was aber offenbar nicht versucht wurde, weil die erste Abfrage fehlschlug.

Um ein Zertifikat von LetsEncrypt mit http-01-Challenge zu erhalten, muss Ihr Server vom öffentlichen Internet aus unter der durch das öffentliche DNS festgelegten Adresse erreichbar sein. LetsEncrypt kann nicht sehen, was sich in Ihrem lokalen Server befindet, /etc/hostsund selbst wenn es das könnte, würde es ihm nicht vertrauen, denn der Sinn eines Zertifikats von einer öffentlichen Zertifizierungsstelle wie LE besteht darin,andere Menschen überall auf der Weltkann der Identität Ihres Servers vertrauen.

WennSie kontrollieren den DNS für diese Domäne, was Sie nicht gesagt haben und was Ihr Beitrag nicht zeigt. Sie könnten stattdessen ein LE-Zertifikat für den Namen eines nur lokalen Servers erhalten, indem Sie die DNS-01-Challenge verwenden. Je nach verwendetem DNS-Anbieter gibt es möglicherweise ein Plugin dafür oder Sie müssen es manuell tun. Dieses Zertifikat könnte dann mit Clients verwendet werden, die lokal [www.]digierp.comauf 127.0.0.1 oder eine andere lokale Adresse mit /etc/hosts oder ähnlichem abgebildet werden.


Um ein Zertifikat von LE oder den meisten öffentlichen CAs zu erhalten, müssen Sie einen öffentlich registrierten Domänennamen „kontrollieren“. In der Praxis bedeutet dies, dass Sie entweder dafür bezahlen oder jemanden (der bezahlt) bitten müssen, es Ihnen zur Verfügung zu stellen. Wenn Sie beispielsweise Mitarbeiter einer Schule sind, wird Ihnen möglicherweise eine Subdomäne unter ihrer Domäne zugewiesen. Von einigen öffentlichen CAs können Sie ein Zertifikat für eine IP-Adresse erhalten, aber nur für eine öffentlich routbare und statisch zugewiesene Adresse, definitiv KEINE Adressen, die für die lokale Verwendung vorgesehen sind, wie Loopback (127.0.0.1 oder ::1), rfc1918 oder fe80:/16.

Außerhalb öffentlicher CAs können Sie, wenn Sie nicht in einer Organisation sind, die eine „lokale“ CA betreibt, wie einige große Unternehmen und Regierungsbehörden, entweder einfach ein selbstsigniertes Zertifikat generieren, wie Falcon anmerkte, oder, etwas komplizierter, Ihre eigene private, persönliche CA einrichten (der nur Sie und niemand sonst vertraut). Meine Liste mit Links zu Fragen zu diesem Thema in mehreren Stacks finden Sie unterhttps://stackoverflow.com/questions/69499225/wie-löst-man-das-problem-mit-selbstsignierten-ssl-zertifikaten-für-sites-intensiv-zu-lösen.

Antwort2

Versuchen Sie, ein Zertifikat von letsencrypt zu erhalten fürwww.beispiel.com? Das kannst du nicht machen. Es gehört dir nicht.

Ich sehe, Sie machen ein paar verschiedene Dinge. Sie haben certbot um ein Zertifikat gebeten fürwww.beispiel.comaber der Rest Ihrer Frage bezieht sich auf example.com. Das sind zwei verschiedene Dinge; das www ist überhaupt nicht impliziert. Es ist jedoch üblich, für beide ein Zertifikat zu erhaltenwww.beispiel.comund example.com,wobei example.com Ihre Domain ist.

Vielleicht ist Ihre Domain digierp.com? Sie haben sie an einigen Stellen bearbeitet, an anderen jedoch nicht.

Ansonsten verwenden Sie die Tools meiner Meinung nach im Allgemeinen richtig. Aber letsencrypt ist kein lokales Tool. Certbot fordert letsencrypt auf, Ihre Kontrolle über die Domäne mithilfe des ACME-Protokolls über das Internet zu überprüfen, und stellt Ihnen dann das Zertifikat aus. Sie können es nicht verwenden, wenn Sie versuchen, einen Server nur im Loopback-Modus auszuführen.

Um letsencrypt zu verwenden, stellen Sie DNS (nicht Ihre Hosts-Datei) so ein, dass es auf den Server verweist, auf dem Ihre Site läuft. Wenn Sie lokale Tests durchführen müssen, verwenden Sie ein anderes Tool; manche Leute stellen ein selbstsigniertes Zertifikat aus und fügen es ihrem Vertrauensspeicher hinzu (oder ignorieren die TLS-Warnungen).

verwandte Informationen