Sijil Elektronik Disahkan
Sendiri
Tujuan nota ini adalah sebagai panduan
ringkas untuk menghasilkan sijil elektronik SSL yang
ditandatangan sendiri. Dengan ini, sijil yang dihasilkan itu
tidak perlu dihantar kepada syarikat pengesahan sijil dan membuat
bayaran. Ini akan memudahkan hubungan dengan perisian yang
menggunakan protokol https seperti Apache dan Webmin.
Pastikan
(1) Perisian OpenSSL telah sedia
dipasang
(2) Perisian untuk komunikasi https sudah
dipasang seperti Apache atau Webmin.
(3) Sudah biasa dengan baris
arahan.
(A) Ubahsuai fail
konfigurasi OpenSSL
(openssl.cnf)
Pastikan dimana fail konfigurasi OpenSSL berada. Bagi
Distribusi Mandrake fail konfigurasi openssl.cnf berada di
/usr/lib/ssl dan bagi distribusi Red Hat
ia berada di /usr/share/ssl. Bagi nota
ini distribusi Fedora Core
2 akan digunakan.
(1) Ubah fail openssl.cnf. Cari bahagian [
CA_default ].
Pada baris
dir
= /usr/share/ssl #
Where everything is kept
Tukarkan kepada direktori dimana openssl.cnf
berada.
Juga pada baris-baris ini
certificate =
$dir/certs/ca.cer # The CA
certificate
private_key =
$dir/private/ca.key # The private key
Keluar daripada editor.
(2) Sediakan fail-fail yang diperlukan. Perlu
merujuk bahagian [ CA_default ]. Fail
perlu berada di dalam direktori yang dimasukkan
diatas.
(i) Fail untuk Index pangkalan
data.
touch /usr/share/ssl/index.txt
(ii) Fail untuk simpanan nombor
serial
echo "01" >
/usr/share/ssl/serial
(iii) Buat direktori /usr/share/ssl/newcerts
mkdir /usr/share/ssl/newcerts
(B) Menyediakan
Certificate Authority (CA)
(1) Sediakan kunci peribadi untuk
CA
(i) Sila berada di direktori dimana
openssl.cnf berada. Semua arahan akan dijalankan daripada
direktori itu.
cd /usr/share/ssl
(ii) Jalankan arahan dibawah
openssl genrsa -des3 -out private/ca.key
1024
Generating RSA private key, 1024 bit long
modulus
...........................++++++
..............++++++
e is 65537 (0x10001)
Enter pass phrase for
private/ca.key:
Verifying - Enter pass phrase for
private/ca.key:
Jangan lupa katalaluan yang dimasukkan.
Katalaluan diperlukan untuk sebarang urusan melibatkan sijil
elektronik ini.
(2) Dengan kunci peribadi ini kita akan
membuat sijil yang diperlukan
(i) Gunakan arahan dibawah
ini.
openssl req -config openssl.cnf -new -x509
-days 1001 -key private/ca.key -out
certs/ca.cer
Enter pass phrase for
private/ca.key:
You are about to be asked to enter
information that will be incorporated
into your certificate
request.
What you are about to enter is what is called
a Distinguished Name or a DN.
There are quite a few fields but you can
leave some blank
For some fields there will be a default
value,
If you enter '.', the field will be left
blank.
-----
Country Name (2 letter code)
[GB]:MY
State or Province Name (full name)
[Berkshire]:WP
Locality Name (eg, city)
[Newbury]:KL
Organization Name (eg, company) [My Company
Ltd]:MYSIG
Organizational Unit Name (eg, section)
[]:Linux
Common Name (eg, your name or your server's
hostname) []:server1.mysig.org.my
Email Address
[]:secretariat@mysiig.org.my
Masukkan pertanyaan diatas dengan maklumat
yang sesuai. Bagi maklumat hostname pastikan ia sama dengan
nama server.
Sijil elektronik CA akan berada di
/usr/share/ssl/certs/ca.cer
(3) Sebagai pilihan kita boleh export sijil
ini ke format PKCS12 untuk membolehkan pengguna Windows
memasukkan sijil ini untuk dipercayai (Trusted Root Store).
Dengan ini amaran tidak dikeluarkan apabila pengguna melawat
tapak laman.
openssl pkcs12 -export -in certs/ca.cer
-inkey private/ca.key -out certs/ca.p12
Enter pass phrase for
private/ca.key:
Enter Export Password:
Verifying - Enter Export
Password:
Masukkan katalaluan untuk CA dan masukkan
katalaluan untuk Export. Untuk katalaluan Export boleh tekan
enter sahaja. Ini akan memudahkan kerja-kerja
Export.
(C) Sediakan sijil
untuk server pula
(i) Janakan kunci peribadi untuk
server
openssl genrsa -out private/host.key
1024
(ii) Janakan fail permintaan untuk
sijil
openssl req -new -out host.req -key
private/host.key
You are about to be asked to enter
information that will be incorporated
into your certificate
request.
What you are about to enter is what is called
a Distinguished Name or a DN.
There are quite a few fields but you can
leave some blank
For some fields there will be a default
value,
If you enter '.', the field will be left
blank.
-----
Country Name (2 letter code)
[GB]:MY
State or Province Name (full name)
[Berkshire]:WP
Locality Name (eg, city)
[Newbury]:KL
Organization Name (eg, company) [My Company
Ltd]:MYSIG
Organizational Unit Name (eg, section)
[]:Linux
Common Name (eg, your name or your server's
hostname) []:server1.mysig.org.my
Email Address
[]:secretariat@mysiig.org.my
Please enter the following 'extra'
attributes
to be sent with your certificate
request
A challenge password []:
An optional company name []:
Untuk menghasilkan sijil tanpa katalaluan
hanya perlu tekan Enter pada "challenge password
[]:"
(D) Luluskan
sijil server dengan CA
openssl ca -policy policy_anything
-config openssl.cnf -cert certs/ca.cer -in host.req -keyfile
private/ca.key -days 360 -out
certs/server.cer
(Satu arahan yang panjang dan
bersambung)
Using configuration from
openssl.cnf
Enter pass phrase for
private/ca.key:
Check that the request matches the
signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Aug 4 05:31:12 2004 GMT
Not After : Jul 30 05:31:12 2005 GMT
Subject:
countryName
= MY
stateOrProvinceName =
KL
localityName
= KL
organizationName
= MYSIG
organizationalUnitName =
Linux
commonName
= server1.mysig.org.my
emailAddress
= secretariat@mysig.org.my
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
79:D3:CD:22:59:D0:69:60:D4:0B:3F:4B:1E:E1:FC:C4:9E:E1:61:13
X509v3 Authority Key Identifier:
keyid:2A:DC:01:65:2C:40:6E:42:9A:41:91:85:18:ED:3E:1B:75:7C:4E:65
DirName:/C=MY/ST=WP/L=KL/O=MYSIG/OU=Linux/CN=server1.mysig.org.my/emailAddress=secretariat@mysig.org.my
serial:00
Certificate is to be certified until Jul 30
05:31:12 2005 GMT (360 days)
Sign the certificate?
[y/n]:y
1 out of 1 certificate requests certified,
commit? [y/n]y
Write out database with 1 new
entries
Data Base Updated
(E) Salin host.key dan server.cer (Berada
dalam direktori /usr/share/ssl/certs)
ke tempat yang sesuai dengan perisian yang hendak digunakan
atau ubah konfigurasi kepada kedudukan fail-fail
tersebut.
Untuk Apache
(i) Ubah fail /etc/httpd/conf.d/ssl.conf
Sijil Elektronik
SSLCertificateFile
/usr/share/ssl/certs/server.cer
Kunci Peribadi
SSLCertificateKeyFile
/usr/share/ssl/private/host.key
Untuk Webmin
(i) Ubah fail /etc/webmin/miniserv.conf seperti dibawah
ini.
keyfile=/usr/share/ssl/private/host.key
certfile=/usr/share/ssl/certs/server.cer
Sila rujuk laman Webmin http://www.webmin.com/ untuk
keterangan lanjut. Modul Perl SSL
Net::SSLeay perlu dipasang.
Diharapkan panduan ini membantu untuk
menghasilkan tapak laman Internet dan intranet dengan protokol
https tanpa perlu keluarkan belanja untuk pendaftaran sijil.
Namun untuk tapak laman di Internet dan melibatkan pembayaran
adalah penting mempunyai sijil elektronik yang disahkan oleh CA
yang rasmi.
Rujukan
http://www.dylanbeattie.net/docs/openssl_iis_ssl_howto.html
http://sial.org/howto/openssl/self-signed/
Sebarang masalah sila rujuk di forum IT
Malaysia di
http://www.ittutor.net/
http://www.mysig.org.my/
http://www.mtusempoi.com/
Perbincangan mengenai nota ini boleh dibuat
di
http://www.mtusempoi.com/phpbb2/viewtopic.php?t=3090
Pertanyaan boleh dibuat melalui YM dengan nick
linuxmalaysia atau email kepada linuxmalaysia at
gmail.com
Nota ini sebahagian daripada nota khusus Linux
Pertengahan MYSIG untuk Rangkaian Internet
http://www.mysig.org.my/module/module.asp?id=76
Harisfazillah Bin Jamel
linuxmalaysia
hafnie
V 1.0 04AUG2004
Hakcipta Harisfazillah Jamel 2003
2004
http://creativecommons.org/licenses/by-nc-sa/1.0/
http://www.geocities.com/linuxmalaysia
http://hafnie.blogspot.com/