SSL Zertifikat // ssl_error_rx_record_too_long

Lord_Icon

Member
Hi,

ich baue grad an ein SSL Zertifikat rum.

Hierzu habe ich mir eine zusätzliche IP Addy auf den Server gelegt und die RDNS entsprechend eingerichtet.

In der Zonenververwaltung von der Domain habe ich einen zusätzlichen A-Record eingetragen.

Die Hauptzone zeigt dabei auf die HauptIP (also die alte):
Nennen wir Sie hier *.*.*.100

Desweiteren hier die zusätzlichen Namesserver Einträge:
Code:
[B]Pos.    Name            TTL     RR-Typ  Pref(MX)        Wert[/B]
1			300	MX	10		mailserver.<domain>.de.
2	*		300	A			*.*.*.100
3	www.*		300	A			*.*.*.100
4	ssl.*		300	A			*.*.*.200

Wie man sieht, würde ich den Port 80 auf die normale IP (*.100) laufen lassen. Denn SSL Port: 443 aber über die neue IP (*.200)

Ein Zertifikat habe ich mir erfolgreich angelegt und vorerst selbst siginert. (Wird dann später von einer CA-Stelle ersetzt [Wenn es dann mal gehen sollte])

Das Zertifikat habe ich natürlich auf ssl.<domain>.de eingetragen.

Die VHOST sieht so aus:
Code:
 <Directory "/srv/www/htdocs/user_123/html">
  AllowOverride All
  Options  +FollowSymLinks  +SymLinksIfOwnerMatch
   <IfModule mod_access.c>
    Allow from all
   </IfModule>
 </Directory>

 <VirtualHost *.*.*.100:80>
 ServerName "<domain>.de"
 ServerAlias user_123.<backup_domain>.de www.<domain>.de

 SuexecUserGroup user_123 user123
 DocumentRoot "/srv/www/htdocs/user_123/html"
 ScriptAlias /cgi-bin/ /srv/www/htdocs/user_123/html/cgi-bin/
 <IfModule mod_python.c>
  <Files ~ "\.py$">
   AddHandler python-program .py
   PythonHandler mod_python.publisher
  </Files>
 </IfModule>

 php_admin_flag safe_mode Off
 php_admin_value open_basedir /srv/www/htdocs/user_123/:/usr/share/php
 php_admin_value session.save_path /srv/www/htdocs/user_123/temp
 php_admin_value upload_tmp_dir /srv/www/htdocs/user_123/temp
 php_admin_value safe_mode_exec_dir /srv/www/htdocs/user_123/temp
 php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f <meine_email Addy>"
 php_admin_flag register_globals on
</VirtualHost> 




      <VirtualHost *.*.*.200:443>
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /srv/www/htdocs/user_123/ssl-zertifikat/<domain>.crt
        SSLCertificateKeyFile /srv/www/htdocs/user_123/ssl-zertifikat/<domain>.key

        ServerName ssl.<domain>.de
        SSLOptions StrictRequire
        SSLProtocol all -SSLv3

        SetEnvIf User-Agent ".*MSIE.*" \
                 nokeepalive ssl-unclean-shutdown \
                 downgrade-1.0 force-response-1.0

  ErrorLog    "|/usr/sbin/rotatelogs2 -l /srv/www/htdocs/user_123/log/ssl_error_log.%Y-%m-%d 86400"
  TransferLog "|/usr/sbin/rotatelogs2 -l /srv/www/htdocs/user_123/log/ssl_access_log.%Y-%m-%d 86400"

        DocumentRoot "/srv/www/htdocs/user_123/html"
#        <Directory /srv/www/htdocs/user_123/html/>
#          SSLRequireSSL
#          Order Deny,Allow
#          Allow from All
#        </Directory>

 SuexecUserGroup user_123 user_123
 DocumentRoot "/srv/www/htdocs/user_123/html/"
 ScriptAlias /cgi-bin/ /srv/www/htdocs/user_123/html/cgi-bin/
 <IfModule mod_python.c>
  <Files ~ "\.py$">
   AddHandler python-program .py
   PythonHandler mod_python.publisher
  </Files>
 </IfModule>

 <Files ~ "\.shtml$">
 deny from all
 </Files>

 php_admin_flag safe_mode Off
 php_admin_value open_basedir /srv/www/htdocs/user_123/:/usr/share/php
 php_admin_value session.save_path /srv/www/htdocs/user_123/temp
 php_admin_value upload_tmp_dir /srv/www/htdocs/user_123/temp
 php_admin_value safe_mode_exec_dir /srv/www/htdocs/user_123/temp
 php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f <meine_email_addy>"
 php_admin_flag register_globals off


      </VirtualHost>

Wie man sieht, läuft der 80er Port über die Haupt IP. Das Web ist also weiterhin korrekt erreichbar.

Zusätzlich habe ich dann noch die SSL IP eingetragen. Auf den 443 Port.


Rufe ich von einen anderen Server nun folgenden Befehl auf:
Code:
openssl s_client -connect *.*.*.200:443 -state -debug
erhalte ich eine Menge Daten, die das SSL-Zert. zurückgibt.

Hier die letzten paar Zeilen, die meiner Meinung nach korrekt sind.
Code:
...
...
---
No client certificate CA names sent
---
SSL handshake has read 2382 bytes and written 334 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 4096 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID:
    Session-ID-ctx:
    Master-Key: <langer_Key>
    Key-Arg   : None
    Start Time: 1286982218
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---

SSL sollte somit ok sein. Vhost denke ich mal auch.
Nur was kann es denn sein ? (Ich vermute der A-Record ist schuld. Aber wirklich sicher bin ich mir da nicht... und wüste auch nicht, was ich dort verbessern kann/könnte)

Danke
 
Es sollte eher so ähnlich aussehen:
Code:
---
No client certificate CA names sent
---
SSL handshake has read 1280 bytes and written 465 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: <SID>
    Session-ID-ctx:
    Master-Key: <KEY>
    Key-Arg   : None
    Start Time: 1286983087
    Timeout   : 300 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---
Deine 4096Bit sind zu viel, die Browser unterstützen meist "nur" 2048Bit.

Die VHost-Config würde ich so ähnlich vorschlagen:
Code:
<IfModule ssl_module>
    Listen 10.0.2.15:443
    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl .crl
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
    SSLPassPhraseDialog builtin
    SSLSessionCache "shmcb:/var/run/ssl_scache(512000)"
    SSLSessionCacheTimeout 300
    SSLMutex "file:/var/run/ssl_mutex"
    <VirtualHost 10.0.2.15:443>
        ServerName ssl.example.org
        ServerAdmin webmaster@example.org
        CustomLog "/usr/local/www/vhosts/ssl.example.org/logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        TransferLog "/usr/local/www/vhosts/ssl.example.org/logs/access_log"
        ErrorLog "/usr/local/www/vhosts/ssl.example.org/logs/error_log"
        DocumentRoot "/usr/local/www/vhosts/ssl.example.org/data"
        <Directory "/usr/local/www/vhosts/ssl.example.org/data">
            Options -All +FollowSymLinks +ExecCGI
            AllowOverride Options FileInfo AuthConfig Limit
            Order Allow,Deny
            Allow from all
        </Directory>
        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW:-SSLv2
        SSLCertificateFile "/etc/ssl/webserver_cert.pem"
        SSLCertificateKeyFile "/etc/ssl/webserver_keyrsa.pem"
        <FilesMatch "\.(phps|php|pl|py|cgi|shtml)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    </VirtualHost>
    AcceptPathInfo On
</IfModule>
HTH
 
Back
Top