Cara Set Up Beberapa host SSL Dengan A Single Server Apache

A+ A-

Pada artikel ini, kami akan menunjukkan cara untuk membuat beberapa Sertifikat SSL pada CentOS dengan Apache menggunakan satu alamat IP saja. Secara umum, administrator situs dibatasi untuk menggunakan Sertifikat SSL tunggal per socket dengan IP yang akan dikenakan biaya banyak investasi untuk perusahaan. Pembatasan ini dapat menyebabkan mereka untuk membeli beberapa alamat IP untuk website HTTP untuk mereka hosting yang domain atau membeli hardware yang memungkinkan mereka untuk memanfaatkan beberapa adapter jaringan.

Ini diperbolehkan oleh ekstensi ke protokol SSL disebut Server Nama Indikasi (SNI). Kebanyakan desktop saat ini dan browser web mobile mendukung SNI. Manfaat utama dari menggunakan SNI adalah kemampuan untuk mengamankan beberapa situs tanpa membeli alamat IP yang lebih.

Konfigurasi

Pastikan modul keamanan mod_ssl terinstal dan diaktifkan sehingga web server Apache dapat menggunakan perpustakaan OpenSSL dan toolkit:

 # Yum install mod_ssl openssl 

Jalankan Perintah bawah

 # Mkdir -p / etc / httpd / ssl / 
 # Mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak 
 # Cd / etc / httpd / ssl / 

Menghasilkan SSL Certificate Signing Meminta Files untuk Domain Anda

 # Openssl genrsa -out mydomain1.key 2048 
 # Openssl req -new -key mydomain1.key -out mydomain1.csr 
 # Openssl genrsa -out domain2.key 2048 
 # Openssl req -new -key mydomain2.key -out mydomain2.csr
Masukkan rincian berikut untuk sertifikat Anda:
Nama Negara (2 huruf kode) [AU]: IN
Negara atau Nama Provinsi (nama lengkap) [Beberapa-negara]: Telengana
Lokalitas Nama (misalnya, kota) []: Hyderabad
Nama Organisasi (misalnya, perusahaan) [Internet Widgits Pty Ltd]: mydomain1.com
Unit Organisasi Nama (misalnya, bagian) []: mydomain.com
Nama umum (misalnya Server FQDN atau nama ANDA) []: mydomain1.com
Alamat Email []: sslcertificate@domain1.com 

Disarankan untuk menginstal sertifikat SSL komersial ketika kita menyebarkan dalam lingkungan produksi. Atau, kita hanya menghasilkan sertifikat SSL yang ditandatangani sendiri yang digunakan untuk tujuan pengembangan atau pementasan sebuah situs web menggunakan perintah di bawah ini

 # Openssl x509 -req -days 365 -in mydomain1.csr -signkey mydomain1.key -out domain1.crt 
 # Openssl x509 -req -days 365 -in mydomain2.csr -signkey mydomain2.key -out mydomain2.crt 

Mengedit 'ssl.conf' Apache File Konfigurasi

 # Vi /etc/httpd/conf.d/ssl.conf 
 modul LoadModule ssl_module / mod_ssl.so
Dengarkan 443
NameVirtualHost *: 443
     SSLPassPhraseDialog builtin
     SSLSessionCacheTimeout 300
     SSLMutex bawaan
     SSLRandomSeed berkas startup: / dev / urandom 256
     SSLRandomSeed terhubung builtin
     SSLCryptoDevice builtin
     SSLStrictSNIVHostCheck off
<VirtualHost *: 443>
      DocumentRoot / var / www / html / mydomain1
      ServerName mydomain1.com
      ServerAlias ​​www.mydomain1.com
      SSLEngine di
      SSLProtocol semua -SSLv2 
      SSLCipherSuite ALL:! ADH:! EKSPOR:! SSLv2: RC4 + RSA: + TINGGI: + MEDIUM: + LOW
      SSLCertificateFile /etc/httpd/ssl/mydomain1.cr
      SSLCertificateKeyFile /etc/httpd/ssl/mydomain1.key
      ErrorLog log / ssl_error_log
      Log Transfer log / ssl_access_log
      loglevel memperingatkan
      <Files ~ "\. (Cgi | shtml | phtml |? Php3) $">
               SSLOptions + StdEnvVars
      </ Files>
      SetEnvIf User-Agent ". * MSIE. *" \
      nokeepalive ssl-haram-shutdown yang \
      downgrade-1.0 force-respon-1.0
      CustomLog log / ssl_request_log \
      "% T% h% {SSL_PROTOCOL} x% {SSL_CIPHER} x \"% r \ "% b" 
</ VirtualHost>
<VirtualHost *: 443>
      DocumentRoot / var / www / html / mydomain2
      ServerName mydomain2.com
      ServerAlias ​​www.mydomain2.com
      SSLEngine di
      SSLProtocol semua -SSLv2
      SSLCipherSuite ALL:! ADH:! EKSPOR:! SSLv2: RC4 + RSA: + TINGGI: + MEDIUM: + LOW
      SSLCertificateFile /etc/httpd/ssl/mydomain2.crt
      SSLCertificateKeyFile /etc/httpd/ssl/mydomain2.key
      ErrorLog log / ssl_error_log
      Log Transfer log / ssl_access_log
      loglevel memperingatkan
      <Files ~ "\. (Cgi | shtml | phtml |? Php3) $">
           SSLOptions + StdEnvVars
      </ Files>
      SetEnvIf User-Agent ". * MSIE. *" \
      nokeepalive ssl-haram-shutdown yang \
      Downgrade-1.0 force-respon-1.0
      CustomLog log / ssl_request_log \
      "% T% h% {SSL_PROTOCOL} x% {SSL_CIPHER} x \"% r \ "% b"
</ VirtualHost> 

Ketika kita menggunakan sertifikat SSL komersial, ada kemungkinan bahwa, kewenangan penandatanganan akan mencakup sertifikat CA menengah. Dalam hal ini, kita membuat '/etc/httpd/ssl/ca.crt' baru berkas dan paste isi Intermediate CA ke dalamnya, maka kita perlu mengedit 'ssl.conf' file konfigurasi dan tanda komentar pada baris berikut .

 SSLCertificateChainFile /etc/httpd/ssl/ca.crt 

Jadi web server Apache dapat menemukan sertifikat CA Anda.

Menguji konfigurasi Apache

 # /etc/init.d/httpd Configtest
sintaks OK 

Re sta rt layanan Apache untuk perubahan berlaku

 # Service httpd restart 

Buka https://mydomain1.com dan https://mymydomain2.com di web browser favorit Anda dan memverifikasi bahwa SSL sertifikat terpasang dengan benar.

Setelah konfigurasi ini dan restart Apache, Anda dapat mengakses situs http dengan browser yang mendukung SNI. Jika Anda memiliki setup dengan benar, maka Anda akan dapat mengakses situs tanpa peringatan apapun atau masalah. Anda dapat menambahkan sebanyak website atau Sertifikat SSL yang Anda butuhkan untuk menggunakan proses di atas.