Feature #798

HTTPS

Von following vor etwa 3 Jahren hinzugefügt. Vor fast 3 Jahren aktualisiert.

Status:erledigt% erledigt:

100%

Priorität:2 mittel
Zugewiesen an:following
Zielversion:Version 15
Ticket Referenz: Kategorien:system

Beschreibung

HTTPS-Unterstüzung einbauen. Die Seite soll sowohl als http://www.opencaching.de als auch https://www.opencaching.de funktionieren.

Dazu muss die Verwendung von $opt['page']['absolute_url'] (lib2), $absolute_server_URI (lib1) und SITE_URL (OKAPI) vollständig überprüft und ggf. überarbeitet werden. Evtl. braucht es mehrere URL-Variablen - eine entsprechend dem ursprünglichen Seitenaufruf, je eine fix http und https?

Vorsicht mit Weiterleitungen http -> https, das kann externe Clients aus dem Bahn werfen, auch auf der Loginseite, die von Ocprop genutzt wird.

Zugehörige Revisionen

Revision c2a82fd7
Von following vor etwa 3 Jahren hinzugefügt

improved https and multidomain handling; updates #798

Revision f995f49a
Von following vor etwa 3 Jahren hinzugefügt

improved https and multidomain handling; updates #798

Historie

#1 Von following vor etwa 3 Jahren aktualisiert

  • Zugewiesen an following wurde gelöscht

bräuchte erst https aus meinem Entwicklersystem

#2 Von bohrsty vor etwa 3 Jahren aktualisiert

kein ssl im apache einkompiliert, folgende schritte zum "drueberkompilieren" und ssl konfigurieren:

  1. cd /usr/src/httpd-2.2.14
  2. chown -R developer:developer .
  3. su - developer
  4. cd /usr/src/httpd-2.2.14
  5. ./configure --prefix=/usr/local/apache2 --enable-so --enable-proxy --enable-proxy-http --enable-rewrite --enable-ssl
  6. make
  7. exit
  8. make install
  9. /usr/local/apache2/bin/httpd -k restart

nach diesen schritten ist alles beim alten, nur das ssl-support aktiviert ist.

ssl-zertifikat generieren:

  1. in das conf verzeichnis wechseln: cd /usr/local/apache2/conf/
  2. key und zertifikat erzeugen: openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /usr/local/apache2/conf/apache.key -out /usr/local/apache2/conf/apache.crt
  3. die folgenden fragen koennen quasi mit beliebigen werten beantwortet werden, beispiel siehe unten
[root@oc-devel ~]# cd /usr/local/apache2/conf/
[root@oc-devel conf]# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /usr/local/apache2/conf/apache.key -out /usr/local/apache2/conf/apache.crt
Generating a 2048 bit RSA private key
............................+++
.....................+++
writing new private key to '/usr/local/apache2/conf/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:DE
State or Province Name (full name) [Berkshire]:Hessen
Locality Name (eg, city) [Newbury]:Bad Homburg
Organization Name (eg, company) [My Company Ltd]:OC Entwicklerimage
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:oc-devel.local
Email Address []:root@localhost

konfigurationsdatei fuer ssl erstellen:

  1. vim /usr/local/apache2/conf/ssl.conf
Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

SSLPassPhraseDialog  builtin

SSLSessionCache        "shmcb:/usr/local/apache2/logs/ssl_scache(512000)" 
SSLSessionCacheTimeout  300

SSLMutex  "file:/usr/local/apache2/logs/ssl_mutex" 

##
## SSL Virtual Host Context
##

<VirtualHost *:443>

DocumentRoot "/usr/local/apache2/htdocs" 
ServerName oc-devel.local
ServerAlias localhost
ServerAlias 192.168.177.38
ServerAdmin you@example.com
ErrorLog "/usr/local/apache2/logs/ssl-error_log" 
TransferLog "/usr/local/apache2/logs/ssl-access_log" 

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile "/usr/local/apache2/conf/apache.crt" 
SSLCertificateKeyFile "/usr/local/apache2/conf/apache.key" 

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
     Order allow,deny
     Allow from all
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

<Directory /usr/local/apache2/htdocs/oc-server/server-3.0/code/htdocs>
  php_admin_value error_reporting "-1" 
  php_admin_value display_errors "On" 
  php_value short_open_tag "Off" 
</Directory>

<Directory /usr/local/apache2/htdocs/oc-server/server-3.0/code/lib>
  php_admin_value error_reporting "-1" 
  php_admin_value display_errors "On" 
  php_value short_open_tag "Off" 
</Directory>

<Directory /usr/local/apache2/htdocs/oc-server/server-3.0/htdocs/statpics>
  Options FollowSymLinks SymLinksIfOwnerMatch
  AllowOverride All
</Directory>

<Directory /usr/local/apache2/htdocs/oc-server/server-3.0/htdocs/okapi>
  Options FollowSymLinks
  AllowOverride All
  php_value short_open_tag "On" 
  php_admin_value safe_mode "Off" 
</Directory>

BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

CustomLog "/usr/local/apache2/logs/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 

</VirtualHost>

ssl-konfiguration in haupt-konfiguration einschliessen:

  1. vim /usr/local/apache2/conf/httpd.conf
  2. als letzte zeile Include /usr/local/apache2/conf/ssl.conf einfuegen
  3. apache neustarten /usr/local/apache2/bin/httpd -k restart
  4. firewall anpassen:
    1. iptables -I RH-Firewall-1-INPUT 15 -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
    2. service iptables save

ich hoffe ich habe nichts vergessen, anmerkungen oder fragen am bestern unter http://forum.opencaching-network.org/index.php?topic=3031.120

#3 Von following vor etwa 3 Jahren aktualisiert

Funktioniert, danke!

#4 Von following vor etwa 3 Jahren aktualisiert

  • Zielversion wurde auf Version 15 gesetzt

#5 Von following vor etwa 3 Jahren aktualisiert

  • Zugewiesen an wurde auf following gesetzt

#6 Von following vor etwa 3 Jahren aktualisiert

  • Status wurde von offen zu in Arbeit geändert

#7 Von following vor etwa 3 Jahren aktualisiert

  • Status wurde von in Arbeit zu in Arbeit 30% geändert
  • % erledigt wurde von 0 zu 30 geändert

#8 Von following vor etwa 3 Jahren aktualisiert

To do: Weitere Maßnahmen gegen IE-Nagscreens bei http-in-https-Einbettung:
  • Protokoll der statischen Google-Maps anpassen
  • gibt es absolute lokale Bildlinks in Benutzer-HTML? -> anpassen?

#9 Von following vor etwa 3 Jahren aktualisiert

  • Status wurde von in Arbeit 30% zu in Arbeit 50% geändert
  • % erledigt wurde von 30 zu 50 geändert

#10 Von following vor etwa 3 Jahren aktualisiert

  • Status wurde von in Arbeit 50% zu in Arbeit 60% geändert
  • % erledigt wurde von 50 zu 60 geändert

Scheiße, ist das kompliziert.

#11 Von following vor etwa 3 Jahren aktualisiert

  • Status wurde von in Arbeit 60% zu in Arbeit 70% geändert
  • % erledigt wurde von 60 zu 70 geändert

#12 Von following vor etwa 3 Jahren aktualisiert

  • Beziehung mit Change #816: Passende TLD für Länderdomains verlinken wurde gelöscht

#13 Von following vor etwa 3 Jahren aktualisiert

  • Blockiert Change #816: Passende TLD für Länderdomains verlinken wurde hinzugefügt

#14 Von following vor etwa 3 Jahren aktualisiert

  • Status wurde von in Arbeit 70% zu im Test geändert
  • % erledigt wurde von 70 zu 90 geändert

OKAPI fehlt noch

#15 Von following vor etwa 3 Jahren aktualisiert

  • Status wurde von im Test zu in Arbeit 80% geändert
  • % erledigt wurde von 90 zu 80 geändert

im Test zunächst nur für http, also verifizieren dass da noch alles funktioniert

#16 Von 4_Vs vor etwa 3 Jahren aktualisiert

  • Blockiert Change #816: Passende TLD für Länderdomains verlinken wurde gelöscht

#17 Von following vor etwa 3 Jahren aktualisiert

Folgendes wurde bislang geändert:

Es gibt eine neue Konfigurationseinstellung für HTTPS. Man kann es global definieren in $opt['page']['https'][...] und/oder domainweise in $opt['domain'][...]['https'][...]. Damit lässt sich die Seite wahlweise nur per http, nur per https oder mit beiden parallel betreiben. Im Parallelmodus bleibt jede Abfrage soweit möglich innerhalb des gleichen Protokolls. Das Verlinken von http-Bildern in https-Content wird vermieden.

Weiteres ist in config2/settings-common.inc.php dokumentiert.

Die OKAPI muss noch entsprechend angepasst werden.

#18 Von following vor fast 3 Jahren aktualisiert

  • Status wurde von in Arbeit 80% zu erledigt geändert
  • % erledigt wurde von 80 zu 100 geändert

Ich schließe das hier mal für die Version 15 ab. Für die OKAPI gibt es ein neues Todo: #851

Auch abrufbar als: Atom PDF