Apache için kendinden imzalı SSL sertifikası oluşturma


10

Web sitesi için kendinden imzalı bir sertifika oluşturmak istiyorum. Eski sertifikanın süresi birkaç gün önce dolmuştu. Sistemlerde birden fazla NameVirtualHosts barındırılıyor. Sertifika oluşturmak için kullandığım komutlar bir öğretici web sitesinden alınır ve:

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr 
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Bundan sonra ssl.conf dosyasında VirtualHost bölümü altında diğer yöneticiler tarafından yapılan eski ayarlarla birlikte belirttim

SSLEngine on
SSLCertificateFile <full_path>/server.crt
SSLCertificateKeyFile <full_path>/server.key

Sunucuyu başlattığımda günlük dosyasında aşağıdaki iletileri alıyorum ve sunucu başlatılamıyor.

Error_log dosyasında iletiler

 [Mon Jun 01 23:52:46 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

Ssl_error_log dosyasındaki mesajlar

 [Mon Jun 01 23:52:46 2009] [error] Init: Private key not found
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

Bazıları bunun nasıl çözüleceğini açıklayabilirse gerçekten minnettar olurum. Kendinden imzalı SSL sertifikaları üzerinde birkaç öğretici web sitesi denedim ama bahsettikleri adımların hiçbiri çalışmıyor.

Yanıtlar:


21

Sertifikayı ve anahtarı bir dosyada oluşturmak için bu tek astarı kullanın

openssl req -new -x509 -days 999 -nodes -out apache.pem -keyout apache.pem

O zaman ihtiyacınız olan tek yapılandırma

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

sslengine on ve sslcertificatefile / etc / ssh satırının üstüne ekle demek
Rajat

bu ssh için değil, apache yapılandırması içindir.
hayalci

1
Bu komut, OP'nin orijinal komutunun aksine, özel anahtarı dosya sistemindeki açıklıkta bırakacaktır. -nodesSeçeneği atlamak, anahtarı Triple-DES kullanarak şifreleyin. (Elbette, sunucu her başlatıldığında anahtarın parolasının girilmesi gerekir.) OpenSSL reqkomutu daha güçlü şifrelenmiş anahtarların oluşturulmasını desteklemez, ancak önceden oluşturulmuş güçlü şifrelenmiş anahtarları kullanabilir.
Calrion

4

Bu biraz önemsiz görünebilir, ancak .key dosyanızdaki izni kontrol edin


+1 Bazen önemsiz şeyler en az düşünülür.
Burkhard

0

openssl req -newkey rsa:1024 -keyout privkey.pemAnahtar oluşturma işleminin tam olarak doğru olmaması durumunda, SSL anahtarını oluşturulduğu gibi kaydetmek için kullanabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.