Sijil Elektronik Disahkan Sendiri

Artikel ini di Internet

http://www.mysig.org.my/sig/tech_article.asp?cat=LNX&id=100
http://www.mtusempoi.com/phpbb2/cms_view_article.php?aid=35

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 []:[email protected]

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 []:[email protected]

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 = [email protected]
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/emailAd[email protected]
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/

Artikel dalam XML

http://www.geocities.com/linuxmalaysia/nota/ca-sendiri.html
http://linuxmalaysia.tripod.com/nota/ca-sendiri.html

Popular Posts

Labels

64bit Activity Adempire advocate Akta Apache ASAS Azam backup backuppc Bash Beowulf Big Data Broadband Budget Centos Cinta Cluster CMS cmsfornerd Complain computer Computer Operation Conference Contest Data Centre Operation DBmail Digg Digital Certification Discussion Group Django DNS Domain Duit Online Economy email email server English Evangelist Events Family Tree Fedora File System Firefox Foss FOSS.my FreeBSD FTX Gluster Gmail Godaddy.com Google Google App GTUG Hacking Hadoop Harisfazillah Jamel horde HP-UX hwclock IBM Indonesia Internet Internet Tools Itanium Jaring Java Javascript Jepun Jiwang Joke Joomla Kesihatan KOSTEM ldap Linux Linux Counter linuxmalaysia Love Mailman MailScanner Mailwatch Malay Malaysia MAMPU MDeC meetup Melaka Melayu Merdeka Microsoft Migration mirror sites Money Online MOSC 2010 MOSC2010 mosc2011 MOSC2013 MOSCMY MOSCMY2014 MOSCMY2015 Mozilla MPI MSC Malaysia MSC Malaysia OSCONF MSCOSCONF My Love MyGOSSCON MyMeeting Mypenguin99 mysql Nagios NagiosQL Negaraku nss_ldap ntp OBW2014 Open Office Open Source openldap Openoffice.org OpenStack Opera OS2 OS400 OSCC OSCC MAMPU osdc.my OSS OSS Policy OWASP Parallel Computing People Power Personal PGP PHP Pligg Politik Postfix Postgresql Programming Proxmox Python q1moscmy2015 Questionnaires Research Research tools RPM SASSIAN Sassian 85-89 Sassians 85-89 SCO Security Sekolah Sekolah Alam Shah Shell script Software License Solaris SongketMail SongketMailFilter sourceforge spam spamassassin Spoof Survey SVR4 System Tools Technorati Terjemahan Terminal TMnet Training translation Treasury Malaysia Trend Micro Twitter Ubuntu Unix Virtualization VMS VOIP Wang Web Server Windows Zimbra