Feature #798

HTTPS

Added by following about 4 years ago. Updated about 4 years ago.

Status:erledigt% Done:

100%

Priority name:2 mittel
Assignee:following
Target version:Version 15
Ticket Referenz: Kategorien:system

Description

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.

Associated revisions

Revision c2a82fd7
Added by following about 4 years ago

improved https and multidomain handling; updates #798

Revision f995f49a
Added by following about 4 years ago

improved https and multidomain handling; updates #798

History

#1 Updated by following about 4 years ago

  • Assignee deleted (following)

bräuchte erst https aus meinem Entwicklersystem

#2 Updated by bohrsty about 4 years ago

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 Updated by following about 4 years ago

Funktioniert, danke!

#4 Updated by following about 4 years ago

  • Target version set to Version 15

#5 Updated by following about 4 years ago

  • Assignee set to following

#6 Updated by following about 4 years ago

  • Status changed from offen to in Arbeit

#7 Updated by following about 4 years ago

  • Status changed from in Arbeit to in Arbeit 30%
  • % Done changed from 0 to 30

#8 Updated by following about 4 years ago

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 Updated by following about 4 years ago

  • Status changed from in Arbeit 30% to in Arbeit 50%
  • % Done changed from 30 to 50

#10 Updated by following about 4 years ago

  • Status changed from in Arbeit 50% to in Arbeit 60%
  • % Done changed from 50 to 60

Scheiße, ist das kompliziert.

#11 Updated by following about 4 years ago

  • Status changed from in Arbeit 60% to in Arbeit 70%
  • % Done changed from 60 to 70

#12 Updated by following about 4 years ago

  • Related to deleted (Change #816: Passende TLD für Länderdomains verlinken)

#13 Updated by following about 4 years ago

  • Blocks Change #816: Passende TLD für Länderdomains verlinken added

#14 Updated by following about 4 years ago

  • Status changed from in Arbeit 70% to im Test
  • % Done changed from 70 to 90

OKAPI fehlt noch

#15 Updated by following about 4 years ago

  • Status changed from im Test to in Arbeit 80%
  • % Done changed from 90 to 80

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

#16 Updated by 4_Vs about 4 years ago

  • Blocks deleted (Change #816: Passende TLD für Länderdomains verlinken)

#17 Updated by following about 4 years ago

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 Updated by following about 4 years ago

  • Status changed from in Arbeit 80% to erledigt
  • % Done changed from 80 to 100

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

Also available in: Atom PDF