Ορισμένα πακέτα κοινόχρηστης φιλοξενίας με cPanel δεν προσφέρουν AutoSSL – ή προσφέρουν μόνο σε πακέτα υψηλότερης τιμής. Ως αποτέλεσμα, δεν μπορείτε να εκδώσετε ένα δωρεάν πιστοποιητικό Let's Encrypt μέσω της διεπαφής cPanel και όλα τα domain έχουν κολλήσει με ένα αυτο-υπογεγραμμένο πιστοποιητικό. Το πρόγραμμα περιήγησης εμφανίζει τη σελίδα ως "μη ασφαλής". Η λύση: αποκτήστε μόνοι σας το πιστοποιητικό χρησιμοποιώντας το acme.sh και εγκαταστήστε το μέσω του cPanel UAPI. Θα ανανεωθεί αυτόματα, χωρίς να χρειάζεται AutoSSL.
Το HTTPS είναι πλέον υποχρεωτικό: ακόμη πιο απογοητευτικό, λοιπόν, όταν το δικό σας πακέτο φιλοξενίας δεν προσφέρει έναν βολικό τρόπο για να αποκτήσετε ένα δωρεάν πιστοποιητικό. Αυτό συμβαίνει πιο συχνά από ό,τι νομίζετε – για παράδειγμα, με φθηνά πακέτα εισαγωγικού επιπέδου ή μετά από μια αλλαγή προγράμματος όπου ένα πιστοποιητικό ξαφνικά δεν περιλαμβάνεται πλέον. Ωστόσο, αυτό το κενό μπορεί να γεφυρωθεί κομψά και μόνιμα με λίγες μόνο γραμμές κώδικα στο κέλυφος – η πλήρης διαδικασία περιγράφεται παρακάτω.
1. Συνδεθείτε μέσω SSH
ssh -p <port> <cpanel-user>@<host>
2. Εγκαταστήστε το acme.sh
curl https://get.acme.sh | sh -s email=du@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
Το άγκιστρο γράφει το πιστοποιητικό στον κατάλληλο εικονικό κεντρικό υπολογιστή μέσω UAPI. Οι ρυθμίσεις ανάπτυξης αποθηκεύονται – από εδώ και στο εξής, το cron θα ανανεώνει και θα εγκαθιστά αυτόματα τα πάντα πριν από τη λήξη. Ο εκδότης θα πρέπει να είναι "Let's Encrypt" και η ημερομηνία λήξης θα πρέπει να είναι περίπου 90 ημέρες στο μέλλον. Εάν το παλιό, αυτο-υπογεγραμμένο πιστοποιητικό εξακολουθεί να εμφανίζεται, μια πλήρης επαναφόρτωση στο πρόγραμμα περιήγησης συνήθως βοηθάει – το προηγούμενο πιστοποιητικό ενδέχεται να είναι προσωρινά αποθηκευμένο στην προσωρινή μνήμη.
Ορισμένοι πάροχοι φιλοξενίας χρησιμοποιούν το δικό τους cPanel hook. install_ssl και απαντάει με κάτι σαν adminbin Cpanel/hooks2/...: exit 255. Το acme.sh εξακολουθεί να αναφέρει ότι "αναπτύχθηκε με επιτυχία" – και αυτό συνήθως είναι σωστό. Σε αυτήν την περίπτωση, το άγκιστρο αποτυγχάνει λόγω ενός επόμενου βήματος – όπως μια εσωτερική εργασία ειδοποίησης ή συγχρονισμού από τον πάροχο φιλοξενίας – όχι της πραγματικής εγκατάστασης.
Για τομείς με umlauts, το acme.sh αποθηκεύει το πιστοποιητικό εσωτερικά στη φόρμα Punycode (xn--…), ενώ η αυτόματη αντιστοίχιση του hook συγκρίνει τη φόρμα Unicode. Αποτέλεσμα: "αναπτύχθηκε σε 0 από 0 ιστότοπους" – δεν έχει εγκατασταθεί τίποτα. Το δύσκολο κομμάτι: το acme.sh αναφέρει επίσης "Επιτυχία" εδώ, επομένως το σφάλμα παραβλέπεται εύκολα. Λύση: εργαστείτε απευθείας με τον τομέα Punycode και απενεργοποιήστε την αυτόματη αντιστοίχιση.:
# Punycode-Form der Domain vorher ermitteln (z. B. via idn-Tool oder Online-Konverter)
acme.sh --issue -d xn--<punycode> -d www.xn--<punycode> -w ~/public_html
export DEPLOY_CPANEL_AUTO_ENABLED='false'
acme.sh --deploy -d xn--<punycode> --deploy-hook cpanel_uapi
Με πρόσβαση SSH, δεν χρειάζεστε AutoSSL: το acme.sh εκδίδει το πιστοποιητικό, το οποίο cpanel_uapiΤο -Hook το εγκαθιστά και η εργασία cron που περιλαμβάνεται το διατηρεί αυτόματα ενημερωμένο. Μόλις ρυθμιστεί, η δωρεάν υπηρεσία HTTPS λειτουργεί συνεχώς από μόνη της. Όσοι επενδύσουν την αρχική προσπάθεια γλιτώνουν κάθε χειροκίνητη ανανέωση στο μέλλον – και μπορούν να επεκτείνουν την ίδια λύση σε οποιοδήποτε επιπλέον domain στον ίδιο λογαριασμό με μία μόνο εντολή.