Ορισμένα πακέτα κοινόχρηστης φιλοξενίας με cPanel δεν προσφέρουν AutoSSL ή προσφέρουν μόνο σε πακέτα υψηλότερης τιμής. Ως αποτέλεσμα, δεν μπορείτε να εκδώσετε ένα δωρεάν πιστοποιητικό Let's Encrypt μέσω της διεπαφής cPanel και όλα τα domain έχουν κολλήσει με ένα αυτο-υπογεγραμμένο πιστοποιητικό. Το πρόγραμμα περιήγησης εμφανίζει τη σελίδα ως "μη ασφαλής". Η λύση: αποκτήστε μόνοι σας το πιστοποιητικό χρησιμοποιώντας το 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
Το άγκιστρο γράφει το πιστοποιητικό στον κατάλληλο εικονικό κεντρικό υπολογιστή μέσω 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 και απενεργοποιήστε την αυτόματη αντιστοίχιση.:
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 στον ίδιο λογαριασμό με μία μόνο εντολή.