Debian : Memasang SSL (OpenSSL): Difference between revisions
No edit summary |
|||
| (9 intermediate revisions by the same user not shown) | |||
| Line 47: | Line 47: | ||
</syntaxhighlight>Ketika ada pertanyaan-pertanya jawab saja seperti beiktu ini<syntaxhighlight lang="linuxconfig"> | </syntaxhighlight>Ketika ada pertanyaan-pertanya jawab saja seperti beiktu ini<syntaxhighlight lang="linuxconfig"> | ||
Country Name (2 letter code) [AU]:ID | Country Name (2 letter code) [AU]:ID | ||
State or Province Name (full name): | State or Province Name (full name) [Some-State]:JawaTimur | ||
Locality Name:Wonorejo | Locality Name (eg, city) []:Wonorejo | ||
Organization Name: | Organization Name (eg, company) [Internet Widgits Pty Ltd]:SMKTKJ | ||
Common Name:smktkjCA | Organizational Unit Name (eg, section) []:TKJ | ||
Common Name (e.g. server FQDN or YOUR name) []:smktkjCA | |||
Email Address []:admin@mail.smktkj.net | |||
</syntaxhighlight>Langkah berikutnya adalah membuat sertifikat untuk domain sebagai contoh disini yang dipakai adalah domain'''<code>smktkj.net</code>''' dengan cara sebagai berikut<syntaxhighlight lang="linuxconfig"> | </syntaxhighlight>Langkah berikutnya adalah membuat sertifikat untuk domain sebagai contoh disini yang dipakai adalah domain'''<code>smktkj.net</code>''' dengan cara sebagai berikut<syntaxhighlight lang="linuxconfig"> | ||
openssl genrsa -out smktkj.net.key 2048 | openssl genrsa -out smktkj.net.key 2048 | ||
openssl req -new -key smktkj.net.key -out smktkj.net.csr | openssl req -new -key smktkj.net.key -out smktkj.net.csr | ||
</syntaxhighlight>akan ada pertanyaan-pertanyaan seperti pada tahap sebelumnya, jawab saja sama persis dengan proses sebelumnya. '''namun pada pertanyaan Commoin Name isi dengan nama domain masing-masing sebagai contoh smktkj.net''' sisanya abaikan saja. | </syntaxhighlight>akan ada pertanyaan-pertanyaan seperti pada tahap sebelumnya, jawab saja sama persis dengan proses sebelumnya. '''namun pada pertanyaan Commoin Name isi dengan nama domain masing-masing sebagai contoh smktkj.net''' sisanya abaikan saja. seperti berikut ini <syntaxhighlight lang="linuxconfig" line="1"> | ||
Country Name (2 letter code) [AU]:ID | |||
State or Province Name (full name) [Some-State]:JawaTimur | |||
Locality Name (eg, city) []:Wonorejo | |||
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SMKTKJ | |||
Organizational Unit Name (eg, section) []:TKJ | |||
Common Name (e.g. server FQDN or YOUR name) []:smktkj.net | |||
Email Address []:admin@mail.smktkj.net | |||
Langkah berikutnya kita membuat file konfigurasi '''SAN (Subject Alternative Name)''', dengan langkah sebagai berikut<syntaxhighlight lang="linuxconfig"> | Please enter the following 'extra' attributes | ||
to be sent with your certificate request | |||
A challenge password []: | |||
An optional company name []: | |||
</syntaxhighlight>Langkah berikutnya kita membuat file konfigurasi '''SAN (Subject Alternative Name)''', dengan langkah sebagai berikut<syntaxhighlight lang="linuxconfig"> | |||
nano /etc/ssl/smktkj.net/smktkj.net.ext | nano /etc/ssl/smktkj.net/smktkj.net.ext | ||
</syntaxhighlight>kemudian isikan baris berikut ini, sekali lagi untuk nama-nama domain yang dipakai pada baris di bawah hanyalah contoh, silahkan di sesuaikan dengan server masing-masing.<syntaxhighlight lang="linuxconfig" line="1"> | </syntaxhighlight>kemudian isikan baris berikut ini, sekali lagi untuk nama-nama domain yang dipakai pada baris di bawah hanyalah contoh, silahkan di sesuaikan dengan server masing-masing.<syntaxhighlight lang="linuxconfig" line="1"> | ||
| Line 143: | Line 154: | ||
[[File:Windows certificate manager4.jpg|870x870px]] | [[File:Windows certificate manager4.jpg|870x870px]] | ||
Setelah di pastikan sudah berada di dalam list, tahap selanjutnya kita ujicoba memanggil domain kita di aplikasi browser dengan menggunakan https. jika bisa terbuka dan tidak ada error maka SSL sudah berhasil terpasang. | Setelah di pastikan sudah berada di dalam list, tahap selanjutnya kita ujicoba memanggil domain kita di aplikasi browser dengan menggunakan https. jika bisa terbuka dan tidak ada error maka SSL sudah berhasil terpasang. Sampai disini pekerjaan kita telah selesai. | ||
[[File:Ssl ok.jpg|630x630px]] | |||
== Tambahan (Lakukan jika diperlukan saja) == | |||
Jika ingin domain langsung di redirect otomatis ke https edit di file virtualhost yang tanpa ssl dan tambahkan baris berikut di bawah baris DocumentRoot /var/www/<syntaxhighlight lang="linuxconfig"> | |||
Redirect permanent / https://smktkj.net/ | |||
untuk nama domain silahkan di sesuaikan | |||
</syntaxhighlight> | |||
Latest revision as of 08:47, 24 November 2025

Apa itu SSL ?
SSL (Secure Sockets Layer) adalah protokol keamanan yang digunakan untuk mengenkripsi komunikasi antara client (misalnya browser) dan server (misalnya web server). Tujuannya: supaya data yang dikirim (seperti username, password, atau informasi kartu kredit) tidak bisa disadap atau dimanipulasi oleh pihak ketiga.
Analogi sederhana SSL
Bayangkan kamu mengirim surat rahasia ke temanmu:
- Tanpa SSL → kamu kirim surat biasa. Siapa pun di jalan (misalnya hacker di jaringan Wi-Fi publik) bisa membaca isinya.
- Dengan SSL → kamu masukkan surat ke amplop terenkripsi yang hanya bisa dibuka oleh penerima yang punya kunci yang cocok.
Cara kerja SSL
SSL menggunakan konsep enkripsi asimetris dan sertifikat digital.
Berikut alur sederhananya (dikenal sebagai SSL Handshake):
- Client (browser) menghubungi server via HTTPS.
- Server mengirim sertifikat SSL (berisi public key dan identitas server).
- Client memverifikasi** sertifikat itu — apakah valid dan dikeluarkan oleh CA (Certificate Authority) tepercaya seperti Let's Encrypt, DigiCert, dll.
- Jika valid, client membuat kunci sesi (session key), lalu mengenkripsinya dengan public key dari server.
- Server mendekripsi dengan private key miliknya → keduanya sekarang punya kunci rahasia bersama untuk komunikasi aman.
- Semua data setelah itu dikirim dalam bentuk terenkripsi (HTTPS).
Apa hubungan SSL dengan HTTPS ?
- HTTP = komunikasi biasa tanpa enkripsi.
- HTTPS = HTTP + SSL/TLS (jadi data dienkripsi). Sekarang sebenarnya SSL sudah digantikan oleh TLS (Transport Layer Security) — versi modern yang lebih aman. Namun istilah “SSL” masih sering digunakan secara umum untuk menyebut SSL/TLS.
Apa pentingnya bagi Admin Server
Sebagai calon admin server, kamu perlu paham SSL di level konfigurasi:
- Menginstal sertifikat SSL di web server (misalnya Apache, Nginx, atau Lighttpd).
- Menggunakan Let's Encrypt untuk sertifikat gratis dan otomatis diperbarui.
- Mengonfigurasi redirect HTTPS dan keamanan tambahan seperti HSTS, OCSP Stapling, dan cipher suite yang kuat.
Langkah - langkah memasang SSL di Server Debian 12
Tahap pertama yang perlu dilakukan adalah memasang openssh, ketikkan perintah berikut ini :
apt install openssl ssl-cert -y
Tunggu proses instalasi selesai, setelah selesai tahap berikutnya kita harus membuat folder khusus untuk menampung file-file sertifikat yang sudah dibuat.
mkdir -p /etc/ssl/smktkj.net
Setelah itu buka folder smktkj.net dengan perintah berikut ini
cd /etc/ssl/smktkj.net
Langkah berikutnya adalah membuat CA Lokal (Certificate Authority) dengan mengetikkan perintah berikut ini
openssl genrsa -out smktkjCA.key 2048
openssl req -x509 -new -nodes -key smktkjCA.key -sha256 -days 3650 -out smktkjCA.crt
Ketika ada pertanyaan-pertanya jawab saja seperti beiktu ini
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:JawaTimur
Locality Name (eg, city) []:Wonorejo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SMKTKJ
Organizational Unit Name (eg, section) []:TKJ
Common Name (e.g. server FQDN or YOUR name) []:smktkjCA
Email Address []:admin@mail.smktkj.net
Langkah berikutnya adalah membuat sertifikat untuk domain sebagai contoh disini yang dipakai adalah domainsmktkj.net dengan cara sebagai berikut
openssl genrsa -out smktkj.net.key 2048
openssl req -new -key smktkj.net.key -out smktkj.net.csr
akan ada pertanyaan-pertanyaan seperti pada tahap sebelumnya, jawab saja sama persis dengan proses sebelumnya. namun pada pertanyaan Commoin Name isi dengan nama domain masing-masing sebagai contoh smktkj.net sisanya abaikan saja. seperti berikut ini
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:JawaTimur
Locality Name (eg, city) []:Wonorejo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SMKTKJ
Organizational Unit Name (eg, section) []:TKJ
Common Name (e.g. server FQDN or YOUR name) []:smktkj.net
Email Address []:admin@mail.smktkj.net
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Langkah berikutnya kita membuat file konfigurasi SAN (Subject Alternative Name), dengan langkah sebagai berikut
nano /etc/ssl/smktkj.net/smktkj.net.ext
kemudian isikan baris berikut ini, sekali lagi untuk nama-nama domain yang dipakai pada baris di bawah hanyalah contoh, silahkan di sesuaikan dengan server masing-masing.
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
subjectAltName = @alt_names
[alt_names]
DNS.1 = smktkj.net
DNS.2 = www.smktkj.net
DNS.3 = db.smktkj.net
DNS.4 = mail.smktkj.net
DNS.5 = ftp.smktkj.net
setelah itu simpan file tersebut. Langkah berikutnya adalah proses menandatangani sertifikat domain dengan CA lokal, dengan cara mengetikkan perintah di bawah ini
openssl x509 -req -in smktkj.net.csr -CA smktkjCA.crt -CAkey smktkjCA.key -CAcreateserial -out smktkj.net.crt -days 825 -sha256 -extfile smktkj.net.ext
semua kata-kata smktkj.net disesuaikan dengan nama domain masing-masing.
setelah semua langkah-langkah di atas di lakukan periksalah di dalam folder /etc/ssl/smktkj.net/ , dengan perintah
ls /etc/ssl/smktkj.net/
pastikan ada file-file berikut ini :
smktkjCA.crt → root CA kamu
smktkj.net.crt → sertifikat domain
smktkj.net.key → private key domain
sekali lagi nama file bisa berbeda, yang penting ada file dengan ekstensi *.crt, *.key Langkah selanjutnya adalah mengaktifkan modul SSL di Apache2 dengan mengetikkan perintah berikut ini
a2enmod ssl
systemctl restart apache2
Langkah selanjutnya adalah tahap membuat VirtualHost untuk HTTPS, ketikkan perintah berikut ini
nano /etc/apache2/sites-available/smktkj.net-ssl.conf
untuk nama smktkj.net bisa diganti dengan nama domain masing-masing
setelah itu isi file tersebut dengan baris berikut ini
<VirtualHost *:443>
ServerName smktkj.net
ServerAlias www.smktkj.net db.smktkj.net mail.smktkj.net ftp.smktkj.net
DocumentRoot /var/www/smktkj.net
SSLEngine on
SSLCertificateFile /etc/ssl/smktkj.net/smktkj.net.crt
SSLCertificateKeyFile /etc/ssl/smktkj.net/smktkj.net.key
SSLCertificateChainFile /etc/ssl/smktkj.net/smktkjCA.crt
<Directory /var/www/smktkj.net>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/smktkj_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/smktkj_ssl_access.log combined
</VirtualHost>
Jangan lupa di sesuaikan untuk server name dan document root /var/www, setelah semua beres jangan lupa di simpan. Tahap selanjutnya kita aktifkan file virtualhost yang baru saja kita buat dengan perintah berikut ini
a2ensite smktkj.net-ssl.conf
systemctl reload apache2
untuk nama file smktkj.net-ssl.conf silahkan di sesuaikan dengan nama file masing-masing.
Langkah - langkah memasang file SSL di PC Client Windows 10/11
Untuk memasang SSL di komputer klien yang menggunakan sistem operasi Windows 10 / 11 caranya adalah sebagai berikut
Tekan tombol Windows + R
maka akan terbuka Windows Run, di dalam windows run ketikkan perintah certmgr.msc seperti pada ganbar berikut ini. Kemudian klik OK
kemudian akan terbuka windows certificate manager seperti pada gambar berikut ini, cari folder Trusted Root Certification Authorities -> klik folder Certificates
Setelah itu klik kanan klik tombol Action --> All Tasks --> Import
Pada tampilan pertama langsung klik Next, kemduain pada tampilan berikutnya klik tombol Browser dan carila file sertifikat yang sudah di Download dari server, kemudian klik Next
Kemudian pada tahap berikutnya langsung klik Next saja. kemudian klik Finish. Pastika file sertifikat domain kita sudah ada di dalam list.
Setelah di pastikan sudah berada di dalam list, tahap selanjutnya kita ujicoba memanggil domain kita di aplikasi browser dengan menggunakan https. jika bisa terbuka dan tidak ada error maka SSL sudah berhasil terpasang. Sampai disini pekerjaan kita telah selesai.
Tambahan (Lakukan jika diperlukan saja)
Jika ingin domain langsung di redirect otomatis ke https edit di file virtualhost yang tanpa ssl dan tambahkan baris berikut di bawah baris DocumentRoot /var/www/
Redirect permanent / https://smktkj.net/
untuk nama domain silahkan di sesuaikan



