Cara Mengaktifkan Beberapa Situs HTTPS Untuk Satu IP Di Debian Etch Menggunakan TLS Ekstensi
Cara ini khusus untuk Debian tetapi dapat di-porting ke distribusi lain karena konsepnya sama. Untuk menggunakan Ekstensi TLS, kita harus menambal dan mengkompilasi ulang apache2 dan mengkompilasi ulang OpenSSL dengan direktif enable-tlsext. Karena Ekstensi TLS relatif baru , beberapa browser internet tidak akan berfungsi sehingga server apache2 hanya akan mengirimkan situs default seperti yang dilakukan http 1.0 pada server http 1.1.
Cara ini mengasumsikan Anda telah mengikuti perfect_setup_debian_etch hingga selesai.
1. Mempersiapkan pbuilder
Instal pbuilder.
apt-get update
apt-get install pbuilder fakeroot Sudo devscripts apt-utils
Selanjutnya edit /etc/pbuilder/pbuilderrc pada baris 11 untuk mencerminkan situs terdekat Anda. Ini adalah situs yang akan digunakan untuk menyelesaikan ketergantungan.
MIRRORSITE=http://http.us.debian.org/debian
Dalam file yang sama pergi ke baris 20 dan atur DISTRIBUTION=etch
Terakhir, buat gambar pbuilder Anda.
pbuilder buat --disttribution etch
2. Menambal dan mengkompilasi ulang apache2.
Pertama kita harus membuat direktori untuk menyimpan sumber dan mengunduhnya.
mkdir /usr/src/apache2
cd /usr/src/apache2
apt-get source apache2
Salin dan simpan patch ini ke /usr/src/apache2/apache2-2.2.3/httpd-2.2.3-sni.patch
cat> /usr/src/apache2/apache2-2.2.3/httpd-2.2.3-sni.patch
httpd-2.2.3-sni.patch - dukungan indikasi nama server untuk Apache 2.2(lihat RFC 4366, "Ekstensi Transport Layer Security (TLS)" ) berdasarkan tambalan dari proyek EdelKey (http://www.edelweb.fr/EdelKey/files/Apache-2.2.0+0.9.9+servername.patch)Membutuhkan openssl-SNAP-20060330 / openssl-0.9.8 -stable-SNAP-20070813 atau yang lebih baruuntuk bekerja dengan baik (ftp://ftp.openssl.org/snapshot/). Cabang 0.9.8 harus dikonfigurasi secara eksplisit untuk dukungan ekstensi TLS pada waktu kompilasi ("./config enable-tlsext"). Indeks:httpd-2.2.x/modules/ssl/ssl_engine_init.c===================================================================---- httpd-2.2.x/modules/ssl/ssl_engine_init.c (revisi 423224)+++ httpd-2.2.x/modules/ssl/ssl_engine_init.c (copy kerja)@@ -156,6 +156,87 @@ kembali OK; } +#ifndef OPENSSL_NO_TLSEXT+static int set_ssl_vhost(void *servername, conn_rec *c, server_rec *s) +{+ SSLSrvConfigRec *sc;+ SSL *ssl;+ BOOL ditemukan =FALSE;+ apr_array_header_t *names;+ int *names;+ + /* centang ServerName */+ if (!strcasecmp(servername, s->server_hostname))+ found =TRUE;++ /* jika belum cocok, periksa entri ServerAlias */+ if (!found) {+ names =s->nama;+ if (nama) {+ char **name =(char **) nama->elts;+ for (i =0; i |
Gunakan ctrl+d untuk keluar
cd apache2-2.2.3/
Ubah versinya.
cd debian/
Dan ubah baris 1-5 sehingga terlihat seperti ini:
Kompilasi ulang paket sumber.
cd ../..
Kompilasi apache2 dengan pbuilder.
Edit /etc/apt/sources.list dengan editor favorit Anda dan tambahkan baris baru menggunakan sid untuk distribusi
apt-get update
Edit file /usr/src/openssl/openssl-0.9.8g/debian/rules dan tambahkan enable-tlsext pada baris 22 sehingga menjadi seperti ini:
cd openssl-0.9.8g/debian/
Ubah versi pada baris 1-5 sehingga terlihat seperti ini:
Kompilasi ulang paket sumber.
cd ../..
Kompilasi OpenSSL dengan pbuilder.
Menginstal paket yang baru dibuat.
cd /var/cache/pbuilder/result
Jalankan perintah ini untuk memperbaiki dependensi apa pun.
Edit /home/admispconfig/ispconfig/lib/classes/ispconfig_isp_web.lib.php dan cari yang berikut ini:
Beri komentar agar terlihat seperti ini:
Cari lagi di file yang sama dan beri komentar.
Buat situs aman default yang akan dilihat pengguna jika mereka menggunakan browser yang tidak sesuai dengan RFC 4366.
mkdir /var/www/sharedip/ssl
Pastikan untuk memasukkan sandi Anda sendiri.
Edit /etc/apache2/apache2.conf dan letakkan ini di atas. Sertakan /etc/Apache2/vhosts/Vhosts_ispconfig.conf
Uji pembuatan beberapa situs dengan SSL diaktifkan.
http://edseek.com/~jasonb/articles/pbuilder_backports/index.html
patch –p1
dch –iapache2 (2.2.3-4a+etch) stabil; urgensi=rendah
* Ekstensi TLS Diaktifkan
-- John Doe
dpkg-source –b apache2-2.2.3/ apache2_2.2.3.orig.tar.gzpbuilder membangun apache2_2.2.3-4a+etch.dsc
3. Kompilasi OpenSSL-0.9.8g
deb-src http://ftp.debian.org/debian/ sid main
mkdir /usr/src/openssl
cd /usr/src/openssl/
apt-get source opensslCONFARGS =--prefix=/usr --openssldir=/usr/lib/ssl no-idea no-mdc2 no-rc5 zlib enable-tlsext
dch -iopenssl (0.9.8g-1) tidak stabil; urgensi=rendah
* Ekstensi TLS Diaktifkan
-- John Doe
dpkg-source –b openssl-0.9.8g/ openssl_0.9.8g.orig.tar.gzbuild pbuilder openssl_0.9.8g-1.dsc
dpkg –i apache2_2.2.3-4a+etch_all.deb
dpkg –i apache2.2-common_2.2.3-4a+etch_i386.deb
dpkg –i apache2-mpm-prefork_2.2.3-4a+etch_i386.deb
dpkg –i libssl0.9.8_0.9.8g-1_i386.deb
dpkg –i openssl_0.9.8g-1_i386.debapt-get install –f
4. Konfigurasikan ISPConfig untuk mengizinkan beberapa situs web aman pada satu alamat IP
///////////////////////////// /////////////////////////////////////////////////////////// ///////////////////////////////////// $ssl_count =$go_api->db->queryOneRecord ("SELECT count(doc_id) as ssl_co if($ssl_count["ssl_count"]> 1) { // Es ada bereits ein SSL Web mit dieser IP $status ="NOTIFY"; $errorMessage .=$go_api->lng( "error_web_ssl_exist"); $go_api->db->query("UPDATE isp_isp_web set web_ssl =0 di mana doc_id =}
///////////////////////////// /////////////////////////////////////////////////////////// ///////////////////////////////////// // $ssl_count =$go_api->db->queryOneRecord("SELECT count(doc_id) as ssl_co // if($ssl_count["ssl_count"]> 1) { // // Es ada bereits ein SSL Web mit dieser IP // $status ="NOTIFY"; // $errorMessage .=$go_api->lng("error_web_ssl_exist"); // $go_api->db->query("UPDATE isp_isp_web set web_ssl =0 di mana doc_id =// }
cd /var/www/sharedip/ssl
openssl genrsa -des3 -passout pass:yourpassword -out 192.168.1.2.key2 1024
openssl req - baru -passin pass:yourpassword -passout pass:yourpassword -key 192.168.1.2.key2 -out 192.168.1.2.csr -days 365
openssl req -x509 -passin pass:yourpassword -passout pass:yourpassword -key 192.168. 1.2.key2 -in 192.168.1.2.csr -out 192.168.1.2.crt -days 365
openssl rsa -passin pass:yourpassword -in 192.168.1.2.key2 -out 192.168.1.2.key
chmod 400 192.168.1.2.key
Selain itu, saya akan menggunakan tanda "*" untuk nama umum.NameVirtualHost 192.168.1.2:443
Anda harus memiliki browser yang sesuai dengan RFC 4366 untuk dapat melihat situs dengan benar.
Untuk menguji browser Anda, buka https://dave.sni.velox.ch /dan periksa apakah browser Anda berfungsi.Tautan:
https://dave.sni.velox.ch/
http://www.edelweb.fr/EdelKey/