Klien protokol ACME yang ditulis murni dalam bahasa Shell (Unix shell).
Implementasi protokol ACME penuh.
Mendukung sertifikat ECDSA
Mendukung sertifikat SAN dan wildcard
Sederhana, kuat, dan sangat mudah digunakan. Anda hanya membutuhkan waktu 3 menit untuk mempelajarinya.
Kompatibel dengan Bash, Dash, dan Sh.
Murni ditulis di Shell tanpa ketergantungan pada python.
Hanya satu skrip untuk menerbitkan, memperbarui, dan menginstal sertifikat Anda secara otomatis.
TIDAK memerlukan akses root/sudoer
.
buruh pelabuhan siap
IPv6 siap
Pemberitahuan pekerjaan cron untuk pembaruan atau kesalahan, dll.
Ini mungkin skrip shell easiest & smartest
untuk menerbitkan & memperbarui sertifikat gratis secara otomatis.
Wiki: https://github.com/acmesh-official/acme.sh/wiki
Untuk Penggemar Docker: acme.sh? Buruh pelabuhan
Twitter: @neilpangxa
FreeBSD.org
ruby-china.org
Proxmox.dll
pfsense
Penyeimbang beban.org
wacana.org
mod centmin
splynx
opnsense.org
Panel Web CentOS
lnmp.org
lagi...
TIDAK | Status | Platform |
---|---|---|
1 | Mac OS X | |
2 | Windows (termasuk cygwin dengan curl, openssl dan crontab) | |
3 | FreeBSD | |
4 | Solaris | |
5 | Ubuntu | |
6 | TIDAK | pfsense |
7 | OpenBSD | |
8 | NetBSD | |
9 | DragonFlyBSD | |
10 | Omnio | |
11 | Debian | |
12 | CentOS | |
13 | openSUSE | |
14 | Alpine Linux (dengan curl) | |
15 | Linux kuno | |
16 | fedora | |
17 | Kali Linux | |
18 | OracleLinux | |
19 | penyihir | |
10 | Gentoo Linux | |
11 | HapusLinux | |
22 | ----- | Awan Linux #111 |
23 | ----- | OpenWRT: Diuji dan berfungsi. Lihat halaman wiki |
24 | Proxmox: Lihat Wiki Proxmox VE. Versi 4.x, 5.0, 5.1, versi 5.2 dan lebih tinggi |
Periksa proyek pengujian kami:
https://github.com/acmesh-official/acmetest
ZeroSSL.com CA(bawaan)
Letsencrypt.org CA
BeliPass.com CA
SSL.com CA
CA Publik Google.com
Mode ketat kerikil
CA lainnya yang sesuai dengan RFC8555
Mode akar web
Modus mandiri
Mode tls-alpn mandiri
Modus Apache
Modus Nginx
Modus DNS
Modus alias DNS
Mode tanpa kewarganegaraan
Periksa proyek ini: https://github.com/acmesh-official/get.acme.sh
keriting https://get.acme.sh | sh -s [email protected]
Atau:
wget -O - https://get.acme.sh | sh -s [email protected]
Kloning proyek ini dan luncurkan instalasi:
git clone https://github.com/acmesh-official/acme.sh.gitcd ./acme.sh ./acme.sh --install -m [email protected]
Anda don't have to be root
, meskipun it is recommended
.
Instalasi Lanjutan: https://github.com/acmesh-official/acme.sh/wiki/How-to-install
Pemasang akan melakukan 3 tindakan:
Buat dan salin acme.sh
ke direktori rumah Anda ( $HOME
): ~/.acme.sh/
. Semua sertifikat akan ditempatkan di folder ini juga.
Buat alias untuk: acme.sh=~/.acme.sh/acme.sh
.
Buat tugas cron harian untuk memeriksa dan memperbarui sertifikat jika diperlukan.
Contoh entri cron:
0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null
Setelah instalasi, Anda harus menutup terminal saat ini dan membukanya kembali agar alias tersebut berlaku.
Oke, Anda siap menerbitkan sertifikat sekarang.
Tampilkan pesan bantuan:
root@v1:~# acme.sh -h
Contoh 1: Domain tunggal.
acme.sh --issue -d example.com -w /home/wwwroot/example.com
atau:
acme.sh --issue -d example.com -w /home/nama pengguna/public_html
atau:
acme.sh --issue -d example.com -w /var/www/html
Contoh 2: Beberapa domain dalam sertifikat yang sama.
acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com
Parameter /home/wwwroot/example.com
atau /home/username/public_html
atau /var/www/html
adalah folder root web tempat Anda meng-host file situs web Anda. Anda HARUS memiliki write access
ke folder ini.
Argumen kedua "example.com" adalah domain utama tempat Anda ingin mengeluarkan sertifikat. Anda harus memiliki setidaknya satu domain di sana.
Anda harus mengarahkan dan mengikat semua domain ke direktori webroot yang sama: /home/wwwroot/example.com
.
Sertifikat akan ditempatkan di ~/.acme.sh/example.com/
Sertifikat akan diperbarui secara otomatis setiap 60 hari.
Contoh lainnya: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
Setelah sertifikat dibuat, Anda mungkin ingin menginstal/menyalin sertifikat tersebut ke Apache/Nginx atau server lain. Anda HARUS menggunakan perintah ini untuk menyalin sertifikat ke file target, JANGAN gunakan file sertifikat di folder ~/.acme.sh/ , ini hanya untuk penggunaan internal, struktur folder dapat berubah di masa mendatang.
Contoh Apache :
acme.sh --install-cert -d contoh.com --file-cert /path/ke/certfile/in/Apache/cert.pem --file-kunci /path/ke/keyfile/in/apache/key.pem --fullchain-file /path/ke/fullchain/certfile/apache/fullchain.pem --reloadcmd "layanan apache2 memuat ulang secara paksa"
Contoh Nginx :
acme.sh --install-cert -d contoh.com --file-kunci /path/ke/keyfile/in/nginx/key.pem --file rantai penuh /path/ke/fullchain/nginx/cert.pem --reloadcmd "layanan nginx memuat ulang secara paksa"
Hanya domain yang diperlukan, semua parameter lainnya bersifat opsional.
Info kepemilikan dan izin file yang ada dipertahankan. Anda dapat membuat file terlebih dahulu untuk menentukan kepemilikan dan izin.
Instal/salin sertifikat/kunci ke jalur produksi Apache atau Nginx.
Sertifikat akan diperbarui setiap 60 hari secara default (yang dapat dikonfigurasi). Setelah sertifikat diperbarui, layanan Apache/Nginx akan dimuat ulang secara otomatis dengan perintah: service apache2 force-reload
atau service nginx force-reload
.
Harap berhati-hati: Reloadcmd sangat penting. Sertifikat dapat diperpanjang secara otomatis, tetapi, tanpa 'reloadcmd' yang benar, sertifikat tersebut mungkin tidak akan dikirim ke server Anda (seperti nginx atau Apache), maka situs web Anda tidak akan dapat menampilkan sertifikat yang diperbarui dalam 60 hari.
(mengharuskan Anda menjadi root/sudoer atau memiliki izin untuk mendengarkan pada port 80 (TCP))
Port 80
(TCP) HARUS bebas untuk didengarkan, jika tidak, Anda akan diminta untuk membebaskannya dan coba lagi.
acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com
Contoh lainnya: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
(mengharuskan Anda menjadi root/sudoer atau memiliki izin untuk mendengarkan pada port 443 (TCP))
Port 443
(TCP) HARUS bebas untuk didengarkan, jika tidak, Anda akan diminta untuk membebaskannya dan coba lagi.
acme.sh --issue --alpn -d example.com -d www.example.com -d cp.example.com
Contoh lainnya: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
(mengharuskan Anda menjadi root/sudoer, karena diperlukan untuk berinteraksi dengan server Apache)
Jika Anda menjalankan server web, disarankan untuk menggunakan Webroot mode
.
Khususnya, jika Anda menjalankan server Apache, Anda dapat menggunakan mode Apache. Mode ini tidak menulis file apa pun ke folder root web Anda.
Cukup setel string "Apache" sebagai argumen kedua dan itu akan memaksa penggunaan plugin Apache secara otomatis.
acme.sh --issue --Apache -d example.com -d www.example.com -d cp.example.com
Mode apache ini hanya untuk mengeluarkan sertifikat, tidak akan mengubah file konfigurasi apache Anda. Anda perlu mengonfigurasi file konfigurasi situs web Anda untuk menggunakan sertifikat itu sendiri. Kami tidak ingin mengacaukan server Apache Anda, jangan khawatir.
Contoh lainnya: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
(mengharuskan Anda menjadi root/sudoer, karena diperlukan untuk berinteraksi dengan server Nginx)
Jika Anda menjalankan server web, disarankan untuk menggunakan Webroot mode
.
Khususnya, jika Anda menjalankan server nginx, Anda dapat menggunakan mode nginx. Mode ini tidak menulis file apa pun ke folder root web Anda.
Tetapkan saja string "nginx" sebagai argumen kedua.
Ini akan mengkonfigurasi server nginx secara otomatis untuk memverifikasi domain dan kemudian mengembalikan konfigurasi nginx ke versi asli.
Jadi, konfigurasinya tidak diubah.
acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com
Mode nginx ini hanya untuk mengeluarkan sertifikat, tidak akan mengubah file konfigurasi nginx Anda. Anda perlu mengonfigurasi file konfigurasi situs web Anda untuk menggunakan sertifikat itu sendiri. Kami tidak ingin mengacaukan server nginx Anda, jangan khawatir.
Contoh lainnya: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
Jika penyedia DNS Anda mendukung akses API, kami dapat menggunakan API tersebut untuk menerbitkan sertifikat secara otomatis.
Anda tidak perlu melakukan apa pun secara manual!
https://github.com/acmesh-official/acme.sh/wiki/dnsapi
Lihat: https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode terlebih dahulu.
Jika penyedia dns Anda tidak mendukung akses api apa pun, Anda dapat menambahkan data txt secara manual.
acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com
Anda harus mendapatkan output seperti di bawah ini:
Tambahkan catatan txt berikut: Domain:_acme-challenge.example.com Nilai Txt:9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c Tambahkan catatan txt berikut: Domain:_acme-challenge.www.example.com Nilai Txt:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Silakan tambahkan data txt tersebut ke domain. Menunggu dns berlaku.
Kemudian jalankan kembali dengan argumen renew
:
acme.sh --renew -d contoh.com
Oke, sudah selesai.
Hati-hati, ini adalah mode manual dns, tidak dapat diperbarui secara otomatis. Anda harus menambahkan data txt baru ke domain Anda saat Anda memperbarui sertifikat Anda.
Silakan gunakan mode dns api sebagai gantinya.
Cukup atur parameter keylength
dengan awalan ec-
.
Misalnya:
acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256
acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256
Silakan lihat parameter keylength
di atas.
Nilai yang valid adalah:
ec-256 (prime256v1, "ECDSA P-256", yang merupakan jenis kunci default)
ec-384 (secp384r1, "ECDSA P-384")
ec-521 (secp521r1, "ECDSA P-521", yang belum didukung oleh Let's Encrypt.)
2048 (RSA2048)
3072 (RSA3072)
4096 (RSA4096)
Caranya mudah, cukup berikan wildcard domain sebagai parameter -d
.
acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf
Tidak, Anda tidak perlu memperbarui sertifikat secara manual. Semua sertifikat akan diperbarui secara otomatis setiap 60 hari.
Namun, Anda juga dapat memaksa untuk memperbarui sertifikat:
acme.sh --renew -d example.com --force
atau, untuk sertifikat ECC:
acme.sh --renew -d example.com --force --ecc
Untuk menghentikan perpanjangan sertifikat, Anda dapat menjalankan tindakan berikut untuk menghapus sertifikat dari daftar perpanjangan:
acme.sh --remove -d example.com [--ecc]
File sertifikat/kunci tidak dihapus dari disk.
Anda dapat menghapus sendiri direktori tersebut (misalnya ~/.acme.sh/example.com
).
acme.sh
acme.sh terus dikembangkan, jadi sangat disarankan untuk menggunakan kode terbaru.
Anda dapat memperbarui acme.sh ke kode terbaru:
acme.sh --meningkatkan
Anda juga dapat mengaktifkan peningkatan otomatis:
acme.sh --upgrade --upgrade otomatis
Kemudian acme.sh akan selalu diperbarui secara otomatis.
Nonaktifkan peningkatan otomatis:
acme.sh --upgrade --upgrade otomatis 0
https://github.com/acmesh-official/acme.sh/wiki/Issue-a-cert-from-Existing-CSR
https://github.com/acmesh-official/acme.sh/wiki/notify
Bicaralah bahasa ACME menggunakan shell, langsung ke "Let's Encrypt".
YANG HARUS DILAKUKAN:
Acme-tiny: https://github.com/diafygi/acme-tiny
Protokol ACME: https://github.com/ietf-wg-acme/acme
Proyek ini ada berkat semua orang yang berkontribusi.
Menjadi kontributor keuangan dan membantu kami mempertahankan komunitas kami. [Menyumbang]
Dukung proyek ini dengan organisasi Anda. Logo Anda akan muncul di sini dengan tautan ke situs web Anda. [Menyumbang]
Lisensinya adalah GPLv3
Tolong Bintangi dan Garpu saya.
Masalah dan permintaan penarikan dipersilakan.
Donasi Anda membuat acme.sh lebih baik:
PayPal/Alipay(支付宝)/Wechat(微信): https://donate.acme.sh/
Daftar Donasi