• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

SSL Zugang

Hallo,

nachdem ich zum Thema SSL schon viele Beiträge gelesen, und in keinem der Beträge eine Lösung gefunden habe, die auf meine Situation anwendbar ist, muß ich leider noch einen zusätzlichen Beitrag erstellen:

Für ein SSL Zugang wurde via OpenSSL die entsprechenden Zertifikate erfolgreich generiert. - Beim Start wird lediglich eine Warnmeldung ausgegeben:

[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)

Obwohl ich bereits in der Konfiguration sämtliche Anwendungen auf "BasicContraints = CA:True" gesetzt habe, wird diese Meldung immer wieder ausgegeben.

Aber das ist nicht das Hauptproblem.

Wenn über das Intranet auf den Webserver via HTTPS eine Webseite aufgerufen wird, dann werden die entsprechenden Websites korrekt angezeigt. Wenn jedoch über die vom Web aus erreichbare Adresse angegeben wird, dann wird die Website nicht angezeigt. Der Browser meldet schließlich einen Timeout. Im erstellten Zertifikat wurde der korrekte Servername, wie dieser im Web zu sehen ist, eingetragen ({name}.dyndns.org). -> {name} ist hier nur ein Platzhalterzeichen.
Die korrekte Zuweisung der aktuellen IP-Adresse mit dem Namen wird vom DSL-Router übernommen.

Folgende Schritte wurden durchgeführt:

- Am DSL-Router ist der Port 443 so konfiguriert, das alle Anfragen an den Port an den Port 443 des Webservers weitergegeben werden. Der Port 80 ist auf dem gleichen Weg freigeschaltet worden.

Ergebnis: Timeout beim Zugriff via HTTPS

- Testweise Alle Ports via "Exposed Host" auf den Webserver weitergeleitet - Nach der Aktivierung wurde am DSL-Router die Warnung angezeigt, daß der angegebene PC die die Firewall nicht mehr geschützt ist.

Ergebnis: Timeout beim Zugriff via HTTPS

Als DSL-Router wird eine "AVM FritzBox 7170" eingesetzt.

Weiß vielleicht jemand, an welcher Stelle man noch nachschauen kann, damit ein HTTPS-Zugriff auch vom Web aus funktioniert?

Vielen Dank im voraus.
 

nbkr

Guru
BigBen2003 schrieb:
[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)

Obwohl ich bereits in der Konfiguration sämtliche Anwendungen auf "BasicContraints = CA:True" gesetzt habe, wird diese Meldung immer wieder ausgegeben.

Setzt die mal auf False. Du willst ja kein CA Zertifikat für den Webserver.

.
Ergebnis: Timeout beim Zugriff via HTTPS

Als DSL-Router wird eine "AVM FritzBox 7170" eingesetzt.

Weiß vielleicht jemand, an welcher Stelle man noch nachschauen kann, damit ein HTTPS-Zugriff auch vom Web aus funktioniert?

Vielen Dank im voraus.

Hat die Servermaschine evtl. 2 IP Adressen? Hört der Apache auf beide? Hat der Apache evtl. ein Order Allow,Deny irgendwo gesetzt die nicht passt?
 
OP
B

BigBen2003

Newbie
Hallo nbkr,

auch wenn in der Konfigurationsdatei openssl.cnf alle BasicConstraints auf false gesetzt werden, wird immer wieder eine Warnung im Log ausgegeben.

[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)

Ich habe dise Warnung so interpretiert, daß die BasicContraints gerade auf true gesetzt werden müssen, damit diese Warnung nicht mehr angezeigt wird.

In der OpeSSL-Konfigurationsdatei stehen folgende Einträge:

OpenSSL.cnf:

HOME = .
RANDFILE = $ENV::HOME/.rnd

oid_section = new_oids

[ new_oids ]

[ ca ]
default_ca = CA_default # The default ca section

[ CA_default ]
basicConstraints = CA:FALSE

dir = /etc/ssl/certs/ # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.

certificate = $dir/servercert.pem # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/serverkey.pem # The private key
RANDFILE = $dir/.rand # private random number file

x509_extensions = usr_cert # The extentions to add to the cert

name_opt = ca_default # Subject Name options
cert_opt = ca_default # Certificate field options

default_days = 3650 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = sha1 # which md to use.
preserve = no # keep passed DN ordering

policy = policy_match

[ policy_match ]

countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

[ policy_anything ]
basicConstraints = CA:FALSE

countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

####################################################################
[ req ]

default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca # The extentions to add to the self signed cert

string_mask = nombstr

[ req_distinguished_name ]

countryName = Country Name (2 letter code)
countryName_default = DE
countryName_min = 2
countryName_max = 2

stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default =

localityName = Locality Name (eg, city)

0.organizationName = Organization Name (eg, company)

organizationalUnitName = Organizational Unit Name (eg, section)

commonName = Common Name (eg, YOUR name)
commonName_max = 64
commonName_default =

emailAddress = Email Address
emailAddress_max = 64
emailAddress_default =

[ req_attributes ]

challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20

unstructuredName = An optional company name

[ usr_cert ]

basicConstraints = CA:FALSE

nsComment = "OpenSSL Generated Certificate"

subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer

[ v3_req ]

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment

[ v3_ca ]

subjectKeyIdentifier=hash

authorityKeyIdentifier=keyid:always,issuer:always

basicConstraints = CA:false

[ crl_ext ]

authorityKeyIdentifier=keyid:always,issuer:always

[ proxy_cert_ext ]

basicConstraints = CA:FALSE

nsComment = "OpenSSL Generated Certificate"

subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always

proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo


Der Dienst https horcht an allen Netzkarten:

yast_vhosts.conf:
======================
<VirtualHost *:443>
DocumentRoot /srv/www/htdocs
ServerName {name].dyndns.org
ServerAdmin email@web.de
<Directory /srv/www/htdocs>
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.php index.htm index.html default.php default.htm default.html
<IfDefine SSL>
SSLVerifyClient none
SSLVerifyDepth 1
</IfDefine>
</Directory>
ScriptAlias /cgi-bin/ /srv/www/cgi-bin
<Directory /srv/www/cgi-bin>
AllowOverride none
Options +ExecCGI -Includes
Order allow,deny
Allow from all
<IfDefine SSL>
SSLVerifyClient none
SSLVerifyDepth 1
</IfDefine>
</Directory>
<IfDefine SSL>
SSLCertificateFile /etc/ssl/certs/servercert.pem
SSLCertificateKeyFile /etc/ssl/certs/serverkey.pem
SSLEngine on
SSLVerifyClient none
SSLVerifyDepth 1
</IfDefine>
ErrorLog /var/log/apache2/ssl_error_log
CustomLog /var/log/apache2/ssl_access_log combined
</VirtualHost>

Vielleicht haben Sie ja noch eine Idee, woran es hapert?

Laut NMAP ist der Service auf Localhost und auf der IP-Adresse des Webservers https aktiv:

80/tcp open http
443/tcp open https
 
OP
B

BigBen2003

Newbie
Hallo,

ich habe endlich einen funktionieren SSL-Zugang hinbekommen.

Aus einem mir unbekannten Grund hat die Firewall den Port 443 nicht korrekt auf die entsprechende IP-Adresse umgeleitet.

Erst nachdem der DSL-Router auf Werkseinstellungen zurückversetzt und anschließend neu konfiguriert wurde, hat auch der SSL-Zugang fehlerfrei funktioniert.

Die Warnmeldung im SSL-Access-Protokoll wird allerdings immer noch weiterhin angezeigt.

Daher kann ich diesen Call leider noch nicht auf gelöst setzen.
 
Oben