Ορισμένα κοινά πακέτα φιλοξενίας με το cPanel δεν προσφέρουν AutoSSL ή τα προσφέρουν μόνο σε υψηλότερες τιμές. Το αποτέλεσμα: Δεν μπορείτε να εκδώσετε ένα δωρεάν πιστοποιητικό Let's Encrypt μέσω της διεπαφής cPanel και όλοι οι τομείς είναι κολλημένοι σε ένα πιστοποιητικό που υπογράφεται από τον εαυτό σας. Το πρόγραμμα περιήγησης εμφανίζει τη σελίδα ως "μη ασφαλής". Η διέξοδος: αποκτήστε το πιστοποιητικό μόνοι σας με το acme.sh και εγκαταστήστε το μέσω του cPanel UAPI - ανανεώνεται αυτόματα, χωρίς AutoSSL.
Το HTTPS είναι εδώ και καιρό υποχρεωτικό. Είναι ακόμη πιο απογοητευτικό, λοιπόν, όταν το δικό σας πακέτο φιλοξενίας δεν προσφέρει έναν βολικό τρόπο για να αποκτήσετε ένα δωρεάν πιστοποιητικό. Αυτό συμβαίνει πιο συχνά από ό,τι νομίζετε, για παράδειγμα με φθηνά πακέτα εισαγωγικού επιπέδου ή μετά από μια αλλαγή προγράμματος όπου ένα πιστοποιητικό ξαφνικά δεν περιλαμβάνεται πλέον. Ωστόσο, αυτό το κενό μπορεί να γεφυρωθεί κομψά και μόνιμα με λίγες μόνο γραμμές κώδικα στο κέλυφος – η πλήρης διαδικασία περιγράφεται παρακάτω.
1. Συνδεθείτε μέσω SSH
ssh -p <port> <user>@example.com
2. Εγκαταστήστε το acme.sh
curl https://get.acme.sh | sh -s email=me@example.com
source ~/.bashrc
3. Ορίστε το Let's Encrypt ως CA
acme.sh --set-default-ca --server letsencrypt
4. Έκδοση πιστοποιητικού
acme.sh --issue -d example.com -d www.example.com -w ~/public_html
5. Εγκατάσταση στο cPanel
acme.sh --deploy -d example.com --deploy-hook cpanel_uapi
6. Έλεγχος
uapi SSL installed_hosts
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -issuer -dates
Το άγκιστρο γράφει το πιστοποιητικό στον κατάλληλο vHost μέσω UAPI. Η ρύθμιση ανάπτυξης αποθηκεύεται - στο εξής το cron ανανεώνει και εγκαθιστά τα πάντα ανεξάρτητα πριν λήξει. Ο εκδότης είναι το "Let's Encrypt" και η ημερομηνία λήξης είναι περίπου 90 ημέρες στο μέλλον. Εάν εμφανιστεί το παλιό πιστοποιητικό με αυτο-υπογραφή, συνήθως βοηθάει μια σκληρή επαναφόρτωση στο πρόγραμμα περιήγησης - το προηγούμενο πιστοποιητικό μπορεί να αποθηκευτεί προσωρινά.
Ορισμένοι πάροχοι φιλοξενίας χρησιμοποιούν το δικό τους cPanel hook. install_ssl και απαντάει με κάτι σαν adminbin Cpanel/hooks2/...: exit 255. Το acme.sh εξακολουθεί να αναφέρει ότι "αναπτύχθηκε με επιτυχία" - και αυτό είναι σωστό. Σε αυτήν την περίπτωση, το άγκιστρο αποτυγχάνει λόγω ενός επόμενου βήματος (π.χ. εσωτερικής εργασίας ειδοποίησης ή συγχρονισμού από τον κεντρικό υπολογιστή), όχι λόγω της πραγματικής εγκατάστασης.
Για τομείς με umlauts, το acme.sh αποθηκεύει το πιστοποιητικό εσωτερικά στη φόρμα Punycode (xn--…), ενώ η αυτόματη αντιστοίχιση του γάντζου συγκρίνει τη φόρμα Unicode. Αποτέλεσμα: "αναπτύχθηκε σε 0 από 0 ιστότοπους" - δεν έχει εγκατασταθεί τίποτα. Το δύσκολο είναι ότι το acme.sh αναφέρει επίσης "Επιτυχία" εδώ, επομένως το σφάλμα παραβλέπεται εύκολα. Λύση: Εργαστείτε απευθείας με τον τομέα Punycode και απενεργοποιήστε την αυτόματη λειτουργία:
python3 -c "import sys;print(sys.argv[1].encode('idna').decode())" hallöle.de
acme.sh --issue -d xn--hallle-zxa.de -d www.xn--hallle-zxa.de -w ~/public_html
export DEPLOY_CPANEL_AUTO_ENABLED='false'
acme.sh --deploy -d xn--hallle-zxa.de --deploy-hook cpanel_uapi
Με πρόσβαση SSH, δεν χρειάζεστε AutoSSL: το acme.sh εκδίδει το πιστοποιητικό, το οποίο cpanel_uapiΤο -Hook το εγκαθιστά και η εργασία cron που περιλαμβάνεται το διατηρεί αυτόματα ενημερωμένο. Μόλις ρυθμιστεί, η δωρεάν υπηρεσία HTTPS λειτουργεί συνεχώς από μόνη της. Όσοι επενδύσουν την αρχική προσπάθεια γλιτώνουν κάθε χειροκίνητη ανανέωση στο μέλλον – και μπορούν να επεκτείνουν την ίδια λύση σε οποιοδήποτε επιπλέον domain στον ίδιο λογαριασμό με μία μόνο εντολή.