<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pro01</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pro01"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Pro01"/>
	<updated>2026-04-28T16:09:26Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4330</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4330"/>
		<updated>2017-04-27T11:46:53Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Automatisierte Verlängerung der Let’s Encrypt Zertifikate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;[https://github.com/veit/userland-certbot userland-certbot]&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wird empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Achtung: Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen. Und natürlich muss auch eine Verlinkung zu .well-known im Apache Webverzeichnis einer jeden Domain angelegt werden. Also z. B. example.org und www.example.org. Sollte im Webverzeichnis eine RewriteRule o. ä. aktiv sein, so muss diese natürlich vorher deaktiviert werden.):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. cert_renew_order.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob soll viermal im Jahr laufen, und sinnvollerweise ca. 2 Wochen vor Ablauf des alten Zertifikats ausgeführt werden. Angenommen, heute ist der 24.4.2017, dann wäre ein sinnvoller erster Termin zum Zertifikat Erneuern der 10.7.2014 ( + 3 Monate - 2 Wochen) und dann 3-monatlich. Für den Eintrag im crontab bedeutet das: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 10 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/cert_renew_order.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Let’s Encrypt]]&lt;br /&gt;
[[Kategorie:Https]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4329</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4329"/>
		<updated>2017-04-27T11:42:47Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Automatisierte Verlängerung der Let’s Encrypt Zertifikate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;[https://github.com/veit/userland-certbot userland-certbot]&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wird empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Achtung: Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen. Und natürlich muss auch eine Verlinkung zu .well-known im Apache Webverzeichnis einer jeden Domain angelegt werden. Also z. B. example.org und www.example.org. Sollte im Webverzeichnis eine RewriteRule o. ä. aktiv sein, so muss diese natürlich vorher deaktiviert werden.):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. cert_renew_order.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob wird beispielsweise folgendermaßen im crontab eingetragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 8 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/cert_renew_order.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob soll viermal im Jahr laufen, und sinnvollerweise ca. 2 Wochen vor Ablauf des alten Zertifikats ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Let’s Encrypt]]&lt;br /&gt;
[[Kategorie:Https]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4328</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4328"/>
		<updated>2017-04-27T11:39:24Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Automatisierte Verlängerung der Let’s Encrypt Zertifikate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;[https://github.com/veit/userland-certbot userland-certbot]&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wird empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Achtung: Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen. Und natürlich muss auch eine Verlinkung zu .well-known im Apache Webverzeichnis einer jeden Domain angelegt werden. Also z. B. example.org und www.example.org. Sollte im Webverzeichnis eine RewriteRule o. ä. aktiv sein, so muss diese natürlich vorher deaktiviert werden.):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. cert_renew_order.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob wird beispielsweise folgendermaßen im crontab eingetragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 8 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/email.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob soll viermal im Jahr laufen, und sinnvollerweise ca. 2 Wochen vor Ablauf des alten Zertifikats ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Let’s Encrypt]]&lt;br /&gt;
[[Kategorie:Https]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4327</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4327"/>
		<updated>2017-04-27T11:18:28Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;[https://github.com/veit/userland-certbot userland-certbot]&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wird empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Achtung: Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen. Und natürlich muss auch eine Verlinkung zu .well-known im Apache Webverzeichnis einer jeden Domain angelegt werden. Also z. B. example.org und www.example.org. Sollte im Webverzeichnis eine RewriteRule o. ä. aktiv sein, so muss diese natürlich vorher deaktiviert werden.):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. mail.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob wird beispielsweise folgendermaßen im crontab eingetragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 8 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/email.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob soll viermal im Jahr laufen, und sinnvollerweise ca. 2 Wochen vor Ablauf des alten Zertifikats ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Let’s Encrypt]]&lt;br /&gt;
[[Kategorie:Https]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4172</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4172"/>
		<updated>2016-11-30T14:31:22Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wird empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Achtung: Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen. Und natürlich muss auch eine Verlinkung zu .wellknown im Apache Webverzeichnis einer jeden Domain angelegt werden. Also z. B. example.org und www.example.org. Sollte im Webverzeichnis eine RewriteRule o. ä. aktiv sein, so muss diese natürlich vorher deaktiviert werden.):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. mail.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob wird beispielsweise folgendermaßen im crontab eingetragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 8 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/email.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob soll viermal im Jahr laufen, und sinnvollerweise ca. 2 Wochen vor Ablauf des alten Zertifikats ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4171</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4171"/>
		<updated>2016-11-30T14:20:11Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wird empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Achtung: Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen. Und natürlich muss auch eine Verlinkung zu .wellknown im Apache Webverzeichnis einer jeden Domain angelegt werden. Also z. B. example.org und www.example.org. Sollte im Webverzeichnis eine RewriteRule o. ä. aktiv sein, so muss diese natürlich vorher deaktiviert werden.):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. mail.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob wird beispielsweise folgendermaßen im crontab eingetragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 8 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/email.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4170</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4170"/>
		<updated>2016-11-30T14:05:39Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wird empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. mail.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob wird beispielsweise folgendermaßen im crontab eingetragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 8 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/email.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4169</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4169"/>
		<updated>2016-11-30T13:26:54Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wird empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. mail.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob wird beispielsweise folgendermaßen im crontab eingetragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 8 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/email.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4168</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4168"/>
		<updated>2016-11-30T09:41:16Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Automatisierte SSL-Zertifikate von Let’s Encrypt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss je aufgeschaltet (sub)Domain ein Zertifikat bereit gestellt werden&lt;br /&gt;
# es muss je eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem example.org.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem example.org.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem example.org.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte Verlängerung der Let’s Encrypt Zertifikate ===&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt Zertifikate haben eine Gültigkeit von 3 Monaten. Das ist nicht viel. Wenn die Verlängerungsprozedur automatisiert ist, dann muss man sich auf absehbare Zeit gar nicht mehr kümmern. Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können. Eine Möglichkeit lässt sich mittels einer Cronjob gesteuerten E-Mail realisieren. Dazu legt man eine Textdatei (z.B. mail.txt) mit ähnlichem Inhalt z. B. im Verzeichnis ~/etc an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Hostsharing Service&lt;br /&gt;
&lt;br /&gt;
Ich bitte um die Neuinstallation des Zertifikats für die Domain example.org.&lt;br /&gt;
&lt;br /&gt;
Es liegt im Verzeichnis&lt;br /&gt;
/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(automatisierte mail)&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Euer Cronjob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Cronjob wird beispielsweise folgendermaßen im crontab eingetragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# email to service@hostsharing.net for installing new cert of domain example.org&lt;br /&gt;
17 7 8 1,4,7,10 * cat /home/pacs/xyz00/users/doms/etc/email.txt  | mail -s&amp;quot;Erneuern von Zertifikat&amp;quot; service@hostsharing.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4140</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4140"/>
		<updated>2016-08-21T08:34:37Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/doms/example.org/etc&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem cert.crt&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem chain.pem&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem fullchain.chain&lt;br /&gt;
cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4139</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4139"/>
		<updated>2016-08-19T19:30:43Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;quot;etc&amp;quot; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem chain.pem&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4138</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4138"/>
		<updated>2016-08-19T19:29:45Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;lt;pre&amp;gt;etc&amp;lt;/pre&amp;gt; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem chain.pem&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4137</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4137"/>
		<updated>2016-08-19T19:28:13Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Eine Kontakt-Adresse wird erfragt und man muss den Nutzungsbedingungen zustimmen. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die Kontoinformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
Enter email address (used for urgent notices and lost key recovery) (Enter &#039;c&#039;&lt;br /&gt;
to cancel):webmaster@example.org&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
Please read the Terms of Service at&lt;br /&gt;
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree&lt;br /&gt;
in order to register with the ACME server at&lt;br /&gt;
https://acme-v01.api.letsencrypt.org/directory&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
(A)gree/(C)ancel: A&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - If you lose your account credentials, you can recover through&lt;br /&gt;
   e-mails sent to webmaster@example.org.&lt;br /&gt;
 - Your account credentials have been saved in your Certbot&lt;br /&gt;
   configuration directory at&lt;br /&gt;
   /home/pacs/pxyz00/users/doms/certbot/userland-certbot/parts/certbot/etc.&lt;br /&gt;
   You should make a secure backup of this folder now. This&lt;br /&gt;
   configuration directory will also contain certificates and private&lt;br /&gt;
   keys obtained by Certbot so making regular backups of this folder&lt;br /&gt;
   is ideal.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt während der Zertifikatserstellung eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass der Domain-Admin die erforderlichen Berechtigungen hat. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt. (Hier sollten alle Domains des Domain-Admins angegeben werden, die evtl. abgesichert werden sollen):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis &amp;lt;nowiki&amp;gt;etc&amp;lt;/nowiki&amp;gt; der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem chain.pem&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service@hostsharing.net weiterleiten können, um das erneuerte Zertifikat ersetzen zu können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4136</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4136"/>
		<updated>2016-08-19T19:11:45Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass Domain-Admin berechtigt ist, ein Zertifikat für die Domain zu erstellen. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die KontoInformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-register&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Zertifikat wird folgendermaßen erzeugt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis etc der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem chain.pem&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service weiterleiten können, um das erneuerte Zertifikat ersetzen zu können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4135</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4135"/>
		<updated>2016-08-18T21:55:35Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass Domain-Admin berechtigt ist, ein Zertifikat für die Domain zu erstellen. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die KontoInformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
das Zertifikat wird folgendermaßen erzeugt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis etc der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem chain.pem&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
Buildout ist so konfiguriert, dass ein Cronjob zur Zertifikatserneuerung angelegt wird, der täglich ausgeführt wird. Vor Ablauf des Zertifikats wird ein neues Zertifikat erstellt und ersetzt das alte. Außerdem wird eine Mail an die registrierte Adresse gesendet. Theoretisch sollte man diese Mail an service weiterleiten können, um das erneuerte Zertifikat ersetzen zu können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4134</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4134"/>
		<updated>2016-08-18T21:30:16Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass Domain-Admin berechtigt ist, ein Zertifikat für die Domain zu erstellen. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/example.org/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die KontoInformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
das Zertifikat wird folgendermaßen erzeugt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d example.org -d www.example.org&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis etc der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/cert.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/chain.pem chain.pem&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/fullchain.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/example.org/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/example.org/privkey.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/example.org/etc an service@hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4133</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4133"/>
		<updated>2016-08-18T21:20:49Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass Domain-Admin berechtigt ist, ein Zertifikat für die Domain zu erstellen. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/prontonet.eu/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die KontoInformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
das Zertifikat wird folgendermaßen erzeugt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d prontonet.eu -d www.prontonet.eu&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/prontonet.eu/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hostsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb Kopiert man die Symlinks ins Verzeichnis etc der Domain und bennent die Endungen entsprechend um.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/prontonet.eu/cert.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/prontonet.eu/chain.pem chain.pem&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/prontonet.eu/fullchain.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ cp ~/certbot/userland-certbot/parts/certbot/etc/live/prontonet.eu/privkey.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/prontonet.eu/etc an service@hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4132</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4132"/>
		<updated>2016-08-16T15:19:46Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass Domain-Admin berechtigt ist, ein Zertifikat für die Domain zu erstellen. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/prontonet.eu/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die KontoInformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
das Zertifikat wird folgendermaßen erzeugt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d prontonet.eu -d www.prontonet.eu&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/prontonet.eu/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hoistsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb legt man Symlinks im Verzeichnis etc der Domain ab.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/cert1.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/chain1.pem chain.pem&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/fullchain1.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/privkey1.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/prontonet.eu/etc an service@hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4131</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4131"/>
		<updated>2016-08-16T13:38:40Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass Domain-Admin berechtigt ist, ein Zertifikat für die Domain zu erstellen. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/prontonet.eu/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die KontoInformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
das Zertifikat wird folgendermaßen erzeugt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d prontonet.eu -d www.prontonet.eu&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/prontonet.eu/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hoistsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb legt man Symlinks im Verzeichnis etc der Domain ab.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/cert1.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/chain1.pem chain.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/fullchain1.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/privkey1.pem privkey.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/prontonet.eu/etc an service@hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4130</id>
		<title>TLS / SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_/_SSL&amp;diff=4130"/>
		<updated>2016-08-16T12:34:48Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSL wird zu TLS ==&lt;br /&gt;
&lt;br /&gt;
Transport Layer Security (TLS) ist eine Weiterentwicklung des Secure Socket Layers (SSL) durch die Internet Engineering Task Force (IETF), die das SSL-Protokoll 1999 in Transport Layer Security umbenannte. Der aktuelle Standard ist in RFC 5246 beschrieben und ist von 2008. &lt;br /&gt;
&lt;br /&gt;
== Standardkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
Neu aufgeschaltete Domains haben standardmäßig für die Verzeichnisse htdocs, subs, cgi und fastcgi getrennte *-ssl Ordner. Damit sind SSL-Inhalte sauber und sicher von Nicht-SSL Inhalten getrennt. &lt;br /&gt;
&lt;br /&gt;
Bei Domains, die schon vor der Einführung des SSL Features bestanden, sind die Verzeichnisse subs-ssl, cgi-ssl und fastcgi-ssl  standardmäßig als symbolische Links auf die entsprechenden nicht-ssl Verzeichnisse angelegt worden. Diese Symlinks stellen die Kompatibilität mit der früheren SSL Option her. Damals gab es nur einen Ordner für http und https.&lt;br /&gt;
&lt;br /&gt;
Wer SSL und Nicht-SSL nun sauber trennen möchte oder ganz andere Inhalte anbieten möchte kann die Symlinks löschen und durch Verzeichnisse ersetzen. Bei der Paketdomain ist dabei zu beachten, dass die Rechte neu angelegter Verzeichnisse noch anzupassen sind, wenn die SSL Verzeichnisse nicht für alle User zugänglich sein sollen. &lt;br /&gt;
&lt;br /&gt;
Wer hingegen SSL und Nicht-SSL Seiten innerhalb eines Verzeichnisbaums verwalten möchte, kann umgekehrt die SSL Verzeichnisse löschen und (ggf. auch nur selektiv für einige Unterverzeichnisse) Symlinks auf die Nicht-SSL Verzeichnisse anlegen.&lt;br /&gt;
&lt;br /&gt;
Die Symlinks erlauben es die Seiten sowohl mit als auch ohne SSL abzurufen. Konfigurations- bzw. Administrationsseiten z.B. lassen sich dadurch sehr einfach manuell auch per https:// erreichen.&lt;br /&gt;
&lt;br /&gt;
Möchte man den Zugriff auf bestimmte Seiten nur mit SSL erlauben und automatisch auf SSL umschalten, muss dies noch durch entsprechende [[.htaccess]] Dateien für die betroffenen Verzeichnisse konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
== Eigene SSL Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliche Schritte um ein TLS / SSL Zertifikat zu bekommen ===&lt;br /&gt;
&lt;br /&gt;
# es muss eine example.com.key Datei erzeugt werden&lt;br /&gt;
# mit der example.com.key Datei wird die example.com.csr erstellt&lt;br /&gt;
# Die example.com.csr wird an die Zertifizierungstelle gesendet&lt;br /&gt;
# zurück bekommt man &lt;br /&gt;
## eine example.com.crt Datei&lt;br /&gt;
## ggf eine example.com.chain oder sub.class1.server.ca.pem Datei&lt;br /&gt;
# die example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem Datei werden ins Paket ~/etc Verzeichnis kopiert&lt;br /&gt;
# zur Aktivierung info an service@hostsharing.net senden&lt;br /&gt;
&lt;br /&gt;
=== per script Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Möchte man, dass eine eigene Domain ohne Fehlermeldungen per SSL erreichbar ist, benötigt man ein eigenes Zertifikat von einer Zertifizierungsstelle, die von den Browsern standardmäßig anerkannt wird. &lt;br /&gt;
&lt;br /&gt;
Zudem benötigt man eine eigene IP-Nummer, da dies die Voraussetzung zur Nutzung von ssl-Verschlüsselung ist. &lt;br /&gt;
&lt;br /&gt;
Zunächst muss man als Paket-Admin einen Private Key erzeugen und dann einen CSR (Certificate Signing Request - mit dem Private Key erzeugte Anforderung für ein Zertifikat). Wie das genau funktioniert, ist meistens von Seiten der Zertifizierungsstelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
Man kann aber auch ein kleines Skript nutzen, das Michael Hierweck aufgrund von einer Anleitung von Michaels Hönnig zur Erzeugung von Zertifikaten geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
#Nur Zugriffe für den Owner erlauben&lt;br /&gt;
umask u=rwx,g=,o=&lt;br /&gt;
  &lt;br /&gt;
#Zertifikat erzeugen&lt;br /&gt;
openssl req -new -x509 -keyout ~/etc/cakey.pem -out ~/etc/careq.pem $*&lt;br /&gt;
openssl rsa &amp;lt;~/etc/cakey.pem &amp;gt;~/etc/https.new&lt;br /&gt;
cat ~/etc/careq.pem &amp;gt;&amp;gt;~/etc/https.new&lt;br /&gt;
  &lt;br /&gt;
#Temporäre Dateien löschen&lt;br /&gt;
rm ~/etc/cakey.pem&lt;br /&gt;
rm ~/etc/careq.pem&lt;br /&gt;
  &lt;br /&gt;
#Altes Zertifikat sichern&lt;br /&gt;
cp ~/etc/https.pem ~/etc/https.old&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können weitere Parameter angeben werden, z.B. -days 370.&lt;br /&gt;
&lt;br /&gt;
Die Domain oder Wildcard (*.domain.TLD) für die das Zertifikat gilt, wird auf die Frage als Common Name angegeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der Zertifizierungsstelle der csr übermittelt. Die Datei, die man dann von der Zertifizierungsstelle erhält, muss in das Verzeichnis /etc des Paketadmins kopiert werden. Das neue Zertifikat muss dann noch manuell aktiviert werden, d.h. in https.pem umbenannt werden. Damit kann man dies zu einem beliebigen späteren Zeitpunkt tun und das Zertifikat vorher prüfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kostenlose SSL-Zertifikate von StartSSL ===&lt;br /&gt;
&lt;br /&gt;
Heise hat unter der URL&lt;br /&gt;
http://www.heise.de/security/artikel/Die-Praxis-881280.html&lt;br /&gt;
den Vorgang dokumentiert, wie man ein Zertifikat erhält, &lt;br /&gt;
das von StartSSL ausgestellt wurde und somit im Browser auch keine Warnmeldung verursacht.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; openssl genrsa -out example.com.key 2048&lt;br /&gt;
$&amp;gt; openssl req -new -key example.com.key -out example.com.csr&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erstellt man sich ein Certificate Signing Request (CSR).&lt;br /&gt;
&lt;br /&gt;
Wenn man dann auf https://www.startssl.com/ die &amp;quot;Express Lane&amp;quot; benutzt (privates Zertifikat erzeugen, im Browser installieren, einloggen, Zertifikat anfragen -&amp;gt; &amp;quot;Skip&amp;quot; beim erzeugen -&amp;gt; CSR in Formular kopieren) bekommt man am Ende zwei Dateien:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub.class1.server.ca.pem &lt;br /&gt;
ca.pem&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie das Zertifikat zum Kopieren/Einfügen in eine Datei &amp;lt;b&amp;gt;ssl.crt&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dieses Zertifikat und der private Schlüssel müssen in einer Datei zusammengefasst werden;&lt;br /&gt;
gleichzeitig sollte der Erfolg der Aktion mit &amp;lt;b&amp;gt;openssl&amp;lt;/b&amp;gt; überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$&amp;gt; cat example.com.key ssl.crt &amp;gt; ~/etc/https.pem&lt;br /&gt;
$&amp;gt; openssl s_server -cert https.pem -www&lt;br /&gt;
Using default temp DH parameters&lt;br /&gt;
Using default temp ECDH parameters&lt;br /&gt;
ACCEPT&lt;br /&gt;
^C&lt;br /&gt;
$&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem muss die Datei &#039;&#039;&#039;sub.class1.server.ca.pem&#039;&#039;&#039; per SFTP nach ~/etc/ hochgeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Per Auftrag an service@ muss um Aktivierung des neuen Zertifikats example.com.crt, example.com.key und ggf die example.com.chain oder sub.class1.server.ca.pem gebeten werden. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kann man das Zertifikat nach der Aktivierung testen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.digicert.com/help/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisierte SSL-Zertifikate von Let’s Encrypt ===&lt;br /&gt;
&lt;br /&gt;
Auf Github findet man die Buildout-Konfiguration für den Certbot, einen Installer / Updater für Let&#039;s Encrypt Zertifikate &amp;quot;userland-certbot&amp;quot;. Mithilfe dieses Projekts von Michael Hierweck und Veit Schiele lassen sich &lt;br /&gt;
tatsächlich automatisiert Let&#039;s encrypt Zertifikate automatisiert installieren und erneuern. Hier wird beschrieben, wie man diese Konfiguration in einer Hostsharing-Umgebung einsetzen kann.&lt;br /&gt;
Dazu wird im Home-Verzeichnis des Domain-Admin eine virtuelle Python-Umgebung mit virtualenv erzeugt. In der Umgebung wird Buildout installiert und mit buildout lässt sich der Certbot installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms@myhive:~$ virtualenv certbot&lt;br /&gt;
Running virtualenv with interpreter /usr/bin/python2&lt;br /&gt;
New python executable in certbot/bin/python2&lt;br /&gt;
Also creating executable in certbot/bin/python&lt;br /&gt;
Installing setuptools, pip...done.&lt;br /&gt;
&lt;br /&gt;
xyz00-doms@myhive:~$ cd certbot/&lt;br /&gt;
xyz00-doms@myhive:~/certbot$ . bin/activate&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ &lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ pip install zc.buildout&lt;br /&gt;
Downloading/unpacking zc.buildout&lt;br /&gt;
  Downloading zc.buildout-2.5.2-py2.py3-none-any.whl (262kB): 262kB downloaded&lt;br /&gt;
Downloading/unpacking setuptools&amp;gt;=8.0 (from zc.buildout)&lt;br /&gt;
  Downloading setuptools-25.2.0-py2.py3-none-any.whl (442kB): 442kB downloaded&lt;br /&gt;
Installing collected packages: zc.buildout, setuptools&lt;br /&gt;
  Found existing installation: setuptools 5.5.1&lt;br /&gt;
    Uninstalling setuptools:&lt;br /&gt;
      Successfully uninstalled setuptools&lt;br /&gt;
Successfully installed zc.buildout setuptools&lt;br /&gt;
Cleaning up...&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ git clone https://github.com/veit/userland-certbot.git&lt;br /&gt;
Cloning into &#039;userland-certbot&#039;...&lt;br /&gt;
remote: Counting objects: 55, done.&lt;br /&gt;
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55&lt;br /&gt;
Unpacking objects: 100% (55/55), done.&lt;br /&gt;
Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot$ cd userland-certbot/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ buildout&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/parts&#039;.&lt;br /&gt;
Creating directory &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/develop-eggs&#039;.&lt;br /&gt;
Installing certbot.&lt;br /&gt;
Generated script &#039;/home/pacs/xyz00/users/doms/certbot/userland-certbot/bin/certbot&#039;.&lt;br /&gt;
Installing certbot-directories.&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/bin&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/lib&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/log&lt;br /&gt;
certbot-directories: created path: /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/web&lt;br /&gt;
Installing certbot-runner.&lt;br /&gt;
Installing certbot-crontab.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Certbot legt eine geheime Datei im Verzeichnis /home/pacs/xyz00/users/pronto/certbot/userland-certbot/parts/certbot/web/.well-known ab, die Let&#039;s Encrypt über den Webserver erreichen muss, um sicherzustellen,&lt;br /&gt;
dass Domain-Admin berechtigt ist, ein Zertifikat für die Domain zu erstellen. Im Hier dokumentierten Fall wird das Standard-Setup bei Hostsharing, also der vorinstallierte Apache als Webserver genutzt. &lt;br /&gt;
Dazu wird ein Symlink zum obengenannten Verzeichnis im Apache Webverzeichnis angelegt. (Evtl. muss das Verzeichnis .well-known vorher angelegt werden.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ cd ~/doms/prontonet.eu/subs/www/&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/subs/www$ mkdir ~/certbot/userland-certbot/parts/certbot/web/.well-known&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/subs/www$ ln -s ~/certbot/userland-certbot/parts/certbot/web/.well-known .well-known&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes muss man sich bei Let&#039;s Encrypt registrieren. Dabei wird ein Let&#039;s Encrypt Konto erzeugt, dass die angegebene Email-Adresse mit der Certbot-Installation in Relation setzt.&lt;br /&gt;
Die KontoInformationen werden im Verzeichnis /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc gespeichert und es wir empfohlen diese Daten zu sichern.&lt;br /&gt;
das Zertifikat wird folgendermaßen erzeugt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/certbot/userland-certbot$ bin/certbot-runner certonly -d prontonet.eu -d www.prontonet.eu&lt;br /&gt;
2016-08-16 14:12:19,526:WARNING:certbot.client:Non-standard path(s), might not work with crontab installed by your operating system package manager&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at&lt;br /&gt;
   /home/pacs/xyz00/users/doms/certbot/userland-certbot/parts/certbot/etc/live/prontonet.eu/fullchain.pem.&lt;br /&gt;
   Your cert will expire on 2016-11-14. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot&lt;br /&gt;
   again. To non-interactively renew *all* of your certificates, run&lt;br /&gt;
   &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass Zertifikate bei Hostsharing durch eine E-Mail an service@hostsharing.net aktiviert werden. Dieser Vorgang muss zur Zeit noch &amp;quot;per Hand&amp;quot; initiert werden.&lt;br /&gt;
Außerdem wird von Hoistsharing erwartet, einer gewisse Namenskonvention bei der Benennung der Zertifikate und Schlüssel zu folgen. Deshalb legt man Symlinks im Verzeichnis etc der Domain ab.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/cert1.pem cert.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/chain1.pem chain.crt&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/fullchain1.pem fullchain.chain&lt;br /&gt;
(certbot)xyz00-doms@myhive:~/doms/prontonet.eu/etc$ ln -s ~/certbot/userland-certbot/parts/certbot/etc/archive/prontonet.eu/privkey1.pem privkey.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schickt eine Mail mit der Bitte um Aktivierung des Zertifikats unter Angabe des Verzeichnisses ~/doms/prontonet.eu/etc an service@hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=RadicaleCalDAVServer&amp;diff=3837</id>
		<title>RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=RadicaleCalDAVServer&amp;diff=3837"/>
		<updated>2014-01-23T16:29:49Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* FastCGI Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Radicale CalDAV Server =&lt;br /&gt;
&lt;br /&gt;
[http://de.wikipedia.org/wiki/CalDAV CalDAV] ist eine Erweiterung des WebDAV- (und damit des HTTP-) Protokolls, um Kalenderdaten (Termine und Aufgaben) auf einem Server zu speichern.&lt;br /&gt;
&lt;br /&gt;
Apple nutzt diese Protokoll für seine Clients (iCal-Anwendung und Kalender-App auf dem iPhone) und bietet einen entsprechenden Server an. Dadurch gewinnt CalDAV zunehmende Bedeutung.&lt;br /&gt;
&lt;br /&gt;
Wenn man freie Software einsetzen will, bieten sich folgende Anwendungen an:&lt;br /&gt;
* Das [http://www.mozilla.org/projects/calendar/lightning/ Lightning-Plugin] für Thunderbird (unter Linux und Windows)&lt;br /&gt;
* [http://acal.me aCal] als Android-App&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel wird die Installation eines CalDAV-Server in einem normalen Hostsharing-Paket beschrieben, als leichtgewichtigen Server nutze ich den [http://radicale.org/ Radicale CalDAV Server]. Der Server kann mit Hilfe von [[Flup]] als FastCGI Server betrieben werden.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
Ich lege mit HSAdmin einen User &#039;&#039;xyz00-cal&#039;&#039; an und schalte eine Domain &#039;&#039;cal.example.org&#039;&#039; auf.&lt;br /&gt;
&lt;br /&gt;
=== Download und Entpacken der Pakete ===&lt;br /&gt;
&lt;br /&gt;
* Radicale Download: [http://radicale.org/download/], die aktuelle Version beim Schreiben des Artikel: 0.6.3&lt;br /&gt;
* Flup Download: [http://www.saddi.com/software/flup/dist/], aktuell ist heute: 1.0.2&lt;br /&gt;
&lt;br /&gt;
als User &#039;&#039;xyz00-cal&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz&lt;br /&gt;
 wget http://pypi.python.org/packages/source/R/Radicale/Radicale-0.6.3.tar.gz&lt;br /&gt;
 tar xzf flup-1.0.2.tar.gz&lt;br /&gt;
 tar xzf Radicale-0.6.3.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installation der Python Eggs ===&lt;br /&gt;
&lt;br /&gt;
Die Eggs sollen jeweils im Verzeichnis des aktuellen Users installiert werden. Der Aufruf des Setup-Skripts dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cd ~/flup-1.0.2&lt;br /&gt;
 python setup.py install --user&lt;br /&gt;
 cd ~/Radicale-0.6.3&lt;br /&gt;
 python setup.py install --user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollten sich im Unterverzeichnis ~/.local/ die entsprechenden Python-Skripte finden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ls -l ~/.local/bin/ ~/.local/lib/python2.6/site-packages/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/pacs/xyz00/users/cal/.local/bin/:&lt;br /&gt;
total 4&lt;br /&gt;
-rwxr-xr-x 1 xyz00-cal xyz00 1001 Dec 28 12:04 radicale&lt;br /&gt;
&lt;br /&gt;
/home/pacs/xyz00/users/cal/.local/lib/python2.6/site-packages/:&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 xyz00-cal xyz00 1797 Dec 28 12:04 Radicale-0.6.3.egg-info&lt;br /&gt;
-rw-r--r-- 1 xyz00-cal xyz00  208 Dec 28 12:01 easy-install.pth&lt;br /&gt;
drwxr-xr-x 4 xyz00-cal xyz00   32 Dec 28 12:01 flup-1.0.2-py2.6.egg&lt;br /&gt;
drwxr-xr-x 3 xyz00-cal xyz00 4096 Dec 28 12:04 radicale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FastCGI Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Wir wechseln in das Domain-Verzeichnis &#039;&#039;~/doms/cal.example.org/&#039;&#039;.&lt;br /&gt;
Dort legen wir folgende Dateien an:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/fastcgi/radicale.fcgi&#039;&#039; bzw.&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/fastcgi-ssl/radicale.fcgi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
from flup.server.fcgi import WSGIServer&lt;br /&gt;
import radicale&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
app = radicale.Application()&lt;br /&gt;
WSGIServer(app).run()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: Nicht vergessen, die fcgi-Skripte ausführbar zu machen!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/htdocs/.htaccess&#039;&#039; bzw.&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/htdocs-ssl/.htaccess&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AuthType Basic&lt;br /&gt;
AuthName &amp;quot;Radicale Calendar Server&amp;quot;&lt;br /&gt;
require valid-user&lt;br /&gt;
AuthUserFile /home/pacs/xyz00/users/cal/.htpasswd&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f [OR]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} radicale.fcgi$&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/radicale.fcgi [QSA,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es fehlt noch das Anlegen der &#039;&#039;~/.htpasswd&#039;&#039;-Datei mit den verschlüsselten Passworten der User.&lt;br /&gt;
Dazu rufen wir (für die User &#039;&#039;hans&#039;&#039; und &#039;&#039;franz&#039;&#039;) folgendes Kommando auf (&#039;&#039;htpasswd -c&#039;&#039; erzeugt die Datei):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 htpasswd -c ~/.htpasswd hans&lt;br /&gt;
 htpasswd ~/.htpasswd franz&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle sollte ein Aufruf von &#039;&#039;http://cal.example.org&#039;&#039; im Browser nach Eingabe des Passwortes für &#039;&#039;hans&#039;&#039; oder &#039;&#039;franz&#039;&#039; die folgende Seite liefern: &#039;&#039;Radicale works!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Radicale Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Zuletzt bleibt noch die Erstellung einer Konfigurationsdatei für den Radicale-Server.&lt;br /&gt;
Ein Template für die Datei findet Ihr in &#039;&#039;~/Radicale-0.6.3/config&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Hier der Inhalt meiner &#039;&#039;~/.config/radicale/config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Config file for Radicale - A simple calendar server&lt;br /&gt;
# Place it into ~/.config/radicale/config (user)&lt;br /&gt;
&lt;br /&gt;
[encoding]&lt;br /&gt;
request = utf-8&lt;br /&gt;
stock = utf-8&lt;br /&gt;
&lt;br /&gt;
[acl]&lt;br /&gt;
# Value: None | htpasswd | LDAP&lt;br /&gt;
type = None&lt;br /&gt;
&lt;br /&gt;
[storage]&lt;br /&gt;
# Folder for storing local calendars, created if not present&lt;br /&gt;
folder = ~/.config/radicale/calendars&lt;br /&gt;
&lt;br /&gt;
[logging]&lt;br /&gt;
# Logging configuration file&lt;br /&gt;
# For more information about the syntax of the configuration file, see:&lt;br /&gt;
# http://docs.python.org/library/logging.config.html&lt;br /&gt;
config = ~/.config/radicale/logging&lt;br /&gt;
# Set the default logging level to debug&lt;br /&gt;
debug = False&lt;br /&gt;
# Store all environment variables (including those set in the shell)&lt;br /&gt;
full_environment = False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier der Inhalt meiner &#039;&#039;~/.config/radicale/logging&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[loggers]&lt;br /&gt;
keys = root&lt;br /&gt;
&lt;br /&gt;
[handlers]&lt;br /&gt;
keys = file&lt;br /&gt;
&lt;br /&gt;
[formatters]&lt;br /&gt;
keys = full&lt;br /&gt;
&lt;br /&gt;
[logger_root]&lt;br /&gt;
level = INFO&lt;br /&gt;
handlers = file&lt;br /&gt;
&lt;br /&gt;
[handler_file]&lt;br /&gt;
class = FileHandler&lt;br /&gt;
args = (&#039;/home/pacs/xyz00/users/cal/var/radicale.log&#039;,)&lt;br /&gt;
formatter = full&lt;br /&gt;
&lt;br /&gt;
[formatter_full]&lt;br /&gt;
format = %(asctime)s - %(levelname)s: %(message)s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nutzung der Kalender ==&lt;br /&gt;
&lt;br /&gt;
=== Zugriffsrechte ===&lt;br /&gt;
&lt;br /&gt;
Zu diesem Zeitpunkt können die User &#039;&#039;hans&#039;&#039; und &#039;&#039;franz&#039;&#039; jeweils auf alle Kalender zugreifen. In einer größeren Organisation ist das sicher nicht ausreichend.&lt;br /&gt;
&lt;br /&gt;
Im der oben beschriebenen Konfiguration überlässt man die Zugriffskontrolle am besten dem Apache-Webserver. Das kann man einfach über die bereits vorhandene &#039;&#039;.htaccess&#039;&#039;-Datei regeln:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AuthType Basic&lt;br /&gt;
AuthName &amp;quot;Radicale Calendar Server&amp;quot;&lt;br /&gt;
AuthUserFile /home/pacs/peh06/users/cal/.htpasswd&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^hans&amp;quot;&amp;gt;&lt;br /&gt;
require user hans&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^franz&amp;quot;&amp;gt;&lt;br /&gt;
require user franz&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^team&amp;quot;&amp;gt;&lt;br /&gt;
require valid-user&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f [OR]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} radicale.fcgi$&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/radicale.fcgi [QSA,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So können beide User jeweils eigene Kalender anlegen, z.B:&lt;br /&gt;
* /hans/privat&lt;br /&gt;
* /hans/aufgaben&lt;br /&gt;
* /franz/kalender&lt;br /&gt;
&lt;br /&gt;
Unter dem Pseudouser &#039;&#039;team&#039;&#039; können gemeinsame Kalender verwaltet werden:&lt;br /&gt;
* /team/meetings&lt;br /&gt;
* /team/seminarraum&lt;br /&gt;
&lt;br /&gt;
Mit einer zusätzlichen Datei &#039;&#039;.htgroups&#039;&#039; kann man auch komplexere Szenarien implementieren.&lt;br /&gt;
&lt;br /&gt;
=== Client Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Ich selbst verwende das Lightning-Plugin zu Thunderbird und aCal als Android-App.&lt;br /&gt;
&lt;br /&gt;
==== Lightning ====&lt;br /&gt;
&lt;br /&gt;
Hier kann man jeden einzelnen Kalender mit seiner vollständigen URL abonnieren.&lt;br /&gt;
&lt;br /&gt;
Über die Funktion &amp;quot;Create Calendar&amp;quot;:&lt;br /&gt;
# &amp;quot;On the Network&amp;quot;&lt;br /&gt;
# &amp;quot;CalDAV&amp;quot; mit &amp;quot;Location&amp;quot;: &#039;&#039;http://cal.example.org/franz/privat&#039;&#039;&lt;br /&gt;
# Namen vergeben und Farbe wählen&lt;br /&gt;
# ggf. noch User und Passwort angeben&lt;br /&gt;
# das war&#039;s&lt;br /&gt;
&lt;br /&gt;
==== aCal ====&lt;br /&gt;
&lt;br /&gt;
Bei den Einstellungen &amp;quot;erweitert&amp;quot; auswählen.&lt;br /&gt;
# Benutzername&lt;br /&gt;
# Passwort&lt;br /&gt;
# Servername: &#039;&#039;cal.example.org&#039;&#039;&lt;br /&gt;
# ServerPfad: &#039;&#039;/franz/&#039;&#039;&lt;br /&gt;
# Authentifizierungsmethode: &#039;&#039;Basic&#039;&#039;&lt;br /&gt;
# SSL verwenden: Ja, falls passendes Zertifikat für HTTPS installiert&lt;br /&gt;
# Serverport: 80 bzw. 443&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Pyramid&amp;diff=3834</id>
		<title>Pyramid</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Pyramid&amp;diff=3834"/>
		<updated>2014-01-14T15:24:54Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Konfiguration von Apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Pyramid installieren ==&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Man sollte in betracht ziehen, eine vom System-Python unabhängige Python-Umgebung zu installieren. &lt;br /&gt;
Dazu folgt man der Anleitung unter [[Python]].&lt;br /&gt;
Spätestens, wenn man mehrere Python-Applikationen unter einem User installieren will, sollte man eine isolierte Umgebung&lt;br /&gt;
mittels virtualenv erzeugen.&lt;br /&gt;
&lt;br /&gt;
Falls virtualenv noch nicht installiert ist:&lt;br /&gt;
&lt;br /&gt;
 pip install virtualenv&lt;br /&gt;
&lt;br /&gt;
Die nötige Isolation erreicht man durch Mitgabe des Parameters --no-site-packages.&lt;br /&gt;
&lt;br /&gt;
 virtualenv --no-site-packages pyramidenv&lt;br /&gt;
&lt;br /&gt;
Um Pyramid unter einer Internetadresse erreichbar zu machen, sollte man bereits eine Domain über hsadmin angelegt haben.&lt;br /&gt;
In diesem Beispiel wird sich auf die Domain example.de bezogen.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Dann installiert man Pyramid mithilfe des isolierten Pythons.&lt;br /&gt;
&lt;br /&gt;
 source pyramidenv/bin/activate&lt;br /&gt;
 pip install pyramid&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle wird nun ein leeres Pyramid-Projekt als Platzhalter für ein reeles Pyramid-Projekt erzeugt, obwohl man beim Deployment auf Hostsharing nun wahrscheinlich ein konkretes Projekt installieren würde. Drei Arten von Projekten können initial erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
* starter: URL mapping via URL dispatch und keinen Persistenz-Mechanismus.&lt;br /&gt;
* zodb: URL mapping via traversal und eine ZODB als Persistenz-Mechanismus.&lt;br /&gt;
* alchemy: URL mapping via URL dispatch und Persistenz über SQLAlchemy.&lt;br /&gt;
&lt;br /&gt;
Beispielhaft hier &amp;quot;starter&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 pyramidenv/bin/pcreate -s starter MyProject&lt;br /&gt;
 cd MyProject&lt;br /&gt;
 python setup.py install&lt;br /&gt;
&lt;br /&gt;
Das ist alles. &lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Apache ==&lt;br /&gt;
&lt;br /&gt;
Nun bringen wir die Pyramid-App per [[Flup]] und fastcgi ans Laufen. Es ist zu beachten, dass in einem eigenen Python Flup noch nicht installiert ist. In diesem Fall einfach installieren:&lt;br /&gt;
&lt;br /&gt;
 pip install flup&lt;br /&gt;
&lt;br /&gt;
Nun erzeugt man im Verzeichnis ~/doms/example.de/fastcgi eine Datei z. B. namens myproject_pyramid.fcgi mit folgendem Inhalt.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/home/pacs/xyz00/users/doms/pyramidenv/bin/python&lt;br /&gt;
import sys &lt;br /&gt;
&lt;br /&gt;
myapp = &#039;/home/pacs/xyz00/users/doms/MyProject/&#039;&lt;br /&gt;
inifile = &#039;production.ini&#039;&lt;br /&gt;
from paste.deploy import loadapp&lt;br /&gt;
wsgi_app = loadapp(&#039;config:&#039; + myapp + &#039;/&#039; + inifile)&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    from flup.server.fcgi import WSGIServer&lt;br /&gt;
    WSGIServer(wsgi_app).run()&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zur Erläuterung: In der ersten Zeile wird auf das zu verwendende Python gezeigt. In myapp ist der absolute Pfad zur Pyramid-App.&lt;br /&gt;
Die inifile ist im Deploymentfall wohl production.ini. In einer Entwicklungsumgebung nähme man an dieser Stelle die &amp;quot;development.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Wichtig: Diese Datei muss nun ausführbar gemacht werden.&lt;br /&gt;
&lt;br /&gt;
 chmod +x myproject_pyramid.fcgi&lt;br /&gt;
&lt;br /&gt;
In dem &amp;quot;htdocs&amp;quot;-Verzeichnis der Domain (~/doms/example.de/subs/www) bearbeitet man nun die .htaccess.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
AddHandler fastcgi-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/myproject_pyramid.fcgi/$1 [QSA,L]&lt;br /&gt;
AddType &amp;quot;text/html; charset=UTF-8&amp;quot; html&lt;br /&gt;
AddType &amp;quot;text/plain; charset=UTF-8&amp;quot; txt &lt;br /&gt;
AddCharset UTF-8 .html&lt;br /&gt;
AddDefaultCharset UTF-8&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun kann man die Standard-Pyramid-App im Browser unter http://www.example.de aufrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Pyramid&amp;diff=3833</id>
		<title>Pyramid</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Pyramid&amp;diff=3833"/>
		<updated>2014-01-14T15:20:16Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Konfiguration von Apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Pyramid installieren ==&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Man sollte in betracht ziehen, eine vom System-Python unabhängige Python-Umgebung zu installieren. &lt;br /&gt;
Dazu folgt man der Anleitung unter [[Python]].&lt;br /&gt;
Spätestens, wenn man mehrere Python-Applikationen unter einem User installieren will, sollte man eine isolierte Umgebung&lt;br /&gt;
mittels virtualenv erzeugen.&lt;br /&gt;
&lt;br /&gt;
Falls virtualenv noch nicht installiert ist:&lt;br /&gt;
&lt;br /&gt;
 pip install virtualenv&lt;br /&gt;
&lt;br /&gt;
Die nötige Isolation erreicht man durch Mitgabe des Parameters --no-site-packages.&lt;br /&gt;
&lt;br /&gt;
 virtualenv --no-site-packages pyramidenv&lt;br /&gt;
&lt;br /&gt;
Um Pyramid unter einer Internetadresse erreichbar zu machen, sollte man bereits eine Domain über hsadmin angelegt haben.&lt;br /&gt;
In diesem Beispiel wird sich auf die Domain example.de bezogen.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Dann installiert man Pyramid mithilfe des isolierten Pythons.&lt;br /&gt;
&lt;br /&gt;
 source pyramidenv/bin/activate&lt;br /&gt;
 pip install pyramid&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle wird nun ein leeres Pyramid-Projekt als Platzhalter für ein reeles Pyramid-Projekt erzeugt, obwohl man beim Deployment auf Hostsharing nun wahrscheinlich ein konkretes Projekt installieren würde. Drei Arten von Projekten können initial erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
* starter: URL mapping via URL dispatch und keinen Persistenz-Mechanismus.&lt;br /&gt;
* zodb: URL mapping via traversal und eine ZODB als Persistenz-Mechanismus.&lt;br /&gt;
* alchemy: URL mapping via URL dispatch und Persistenz über SQLAlchemy.&lt;br /&gt;
&lt;br /&gt;
Beispielhaft hier &amp;quot;starter&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 pyramidenv/bin/pcreate -s starter MyProject&lt;br /&gt;
 cd MyProject&lt;br /&gt;
 python setup.py install&lt;br /&gt;
&lt;br /&gt;
Das ist alles. &lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Apache ==&lt;br /&gt;
&lt;br /&gt;
Nun bringen wir die Pyramid-App per [[Flup]] und fastcgi ans Laufen. Es ist zu beachten, dass in einem eigenen Python Flup noch nicht installiert ist. In diesem Fall einfach installieren:&lt;br /&gt;
&lt;br /&gt;
 pip install flup&lt;br /&gt;
&lt;br /&gt;
Nun erzeugt man im Verzeichnis ~/doms/example.de/fastcgi eine Datei z. B. namens myproject_pyramid.fcgi mit folgendem Inhalt.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/home/pacs/xyz00/users/doms/pyramidenv/bin/python&lt;br /&gt;
import sys &lt;br /&gt;
&lt;br /&gt;
myapp = &#039;/home/pacs/xyz00/users/doms/MyProject/&#039;&lt;br /&gt;
inifile = &#039;production.ini&#039;&lt;br /&gt;
from paste.deploy import loadapp&lt;br /&gt;
wsgi_app = loadapp(&#039;config:&#039; + myapp + &#039;/&#039; + inifile)&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    from flup.server.fcgi import WSGIServer&lt;br /&gt;
    WSGIServer(wsgi_app).run()&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig: Diese Datei muss nun ausführbar gemacht werden.&lt;br /&gt;
&lt;br /&gt;
 chmod +x myproject_pyramid.fcgi&lt;br /&gt;
&lt;br /&gt;
In dem &amp;quot;htdocs&amp;quot;-Verzeichnis der Domain (~/doms/example.de/subs/www) bearbeitet man nun die .htaccess.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
AddHandler fastcgi-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/myproject_pyramid.fcgi/$1 [QSA,L]&lt;br /&gt;
AddType &amp;quot;text/html; charset=UTF-8&amp;quot; html&lt;br /&gt;
AddType &amp;quot;text/plain; charset=UTF-8&amp;quot; txt &lt;br /&gt;
AddCharset UTF-8 .html&lt;br /&gt;
AddDefaultCharset UTF-8&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun kann man die Standard-Pyramid-App im Browser unter http://www.example.de aufrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Pyramid&amp;diff=3832</id>
		<title>Pyramid</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Pyramid&amp;diff=3832"/>
		<updated>2014-01-14T15:10:23Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Pyramid installieren ==&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Man sollte in betracht ziehen, eine vom System-Python unabhängige Python-Umgebung zu installieren. &lt;br /&gt;
Dazu folgt man der Anleitung unter [[Python]].&lt;br /&gt;
Spätestens, wenn man mehrere Python-Applikationen unter einem User installieren will, sollte man eine isolierte Umgebung&lt;br /&gt;
mittels virtualenv erzeugen.&lt;br /&gt;
&lt;br /&gt;
Falls virtualenv noch nicht installiert ist:&lt;br /&gt;
&lt;br /&gt;
 pip install virtualenv&lt;br /&gt;
&lt;br /&gt;
Die nötige Isolation erreicht man durch Mitgabe des Parameters --no-site-packages.&lt;br /&gt;
&lt;br /&gt;
 virtualenv --no-site-packages pyramidenv&lt;br /&gt;
&lt;br /&gt;
Um Pyramid unter einer Internetadresse erreichbar zu machen, sollte man bereits eine Domain über hsadmin angelegt haben.&lt;br /&gt;
In diesem Beispiel wird sich auf die Domain example.de bezogen.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Dann installiert man Pyramid mithilfe des isolierten Pythons.&lt;br /&gt;
&lt;br /&gt;
 source pyramidenv/bin/activate&lt;br /&gt;
 pip install pyramid&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle wird nun ein leeres Pyramid-Projekt als Platzhalter für ein reeles Pyramid-Projekt erzeugt, obwohl man beim Deployment auf Hostsharing nun wahrscheinlich ein konkretes Projekt installieren würde. Drei Arten von Projekten können initial erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
* starter: URL mapping via URL dispatch und keinen Persistenz-Mechanismus.&lt;br /&gt;
* zodb: URL mapping via traversal und eine ZODB als Persistenz-Mechanismus.&lt;br /&gt;
* alchemy: URL mapping via URL dispatch und Persistenz über SQLAlchemy.&lt;br /&gt;
&lt;br /&gt;
Beispielhaft hier &amp;quot;starter&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 pyramidenv/bin/pcreate -s starter MyProject&lt;br /&gt;
 cd MyProject&lt;br /&gt;
 python setup.py install&lt;br /&gt;
&lt;br /&gt;
Das ist alles. &lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Apache ==&lt;br /&gt;
&lt;br /&gt;
Nun bringen wir die Pyramid-App per [[Flup]] und fastcgi ans Laufen. Es ist zu beachten, dass in einem eigenen Python Flup noch nicht installiert ist. In diesem Fall einfach installieren:&lt;br /&gt;
&lt;br /&gt;
 pip install flup&lt;br /&gt;
&lt;br /&gt;
Nun erzeugt man im Verzeichnis ~/doms/example.de/fastcgi eine Datei z. B. namens myproject_pyramid.fcgi mit folgendem Inhalt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/home/pacs/xyz00/users/doms/pyramidenv/bin/python&lt;br /&gt;
import sys &lt;br /&gt;
&lt;br /&gt;
myapp = &#039;/home/pacs/xyz00/users/doms/MyProject/&#039;&lt;br /&gt;
inifile = &#039;production.ini&#039;&lt;br /&gt;
from paste.deploy import loadapp&lt;br /&gt;
wsgi_app = loadapp(&#039;config:&#039; + myapp + &#039;/&#039; + inifile)&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    from flup.server.fcgi import WSGIServer&lt;br /&gt;
    WSGIServer(wsgi_app).run()&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig: Diese Datei muss nun ausführbar gemacht werden.&lt;br /&gt;
&lt;br /&gt;
 chmod +x myproject_pyramid.fcgi&lt;br /&gt;
&lt;br /&gt;
In dem &amp;quot;htdocs&amp;quot;-Verzeichnis der Domain (~/doms/example.de/subs/www) bearbeitet man nun die .htaccess.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
AddHandler fastcgi-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/myproject_pyramid.fcgi/$1 [QSA,L]&lt;br /&gt;
AddType &amp;quot;text/html; charset=UTF-8&amp;quot; html&lt;br /&gt;
AddType &amp;quot;text/plain; charset=UTF-8&amp;quot; txt &lt;br /&gt;
AddCharset UTF-8 .html&lt;br /&gt;
AddDefaultCharset UTF-8&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun kann man die Standard-Pyramid-App im Browser unter http://www.example.de aufrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3831</id>
		<title>Eigenes Python installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3831"/>
		<updated>2014-01-14T15:07:18Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigenes Python installieren ==&lt;br /&gt;
&lt;br /&gt;
Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein&lt;br /&gt;
&lt;br /&gt;
* Unabhängigkeit vom System-Python&lt;br /&gt;
* Volle Kontrolle über eingesetzte Python-Packages&lt;br /&gt;
* Freie Auswahl der Python-Distribution (z. B. die neueste)&lt;br /&gt;
&lt;br /&gt;
Ich empfehle Python mithilfe von [http://www.buildout.org/ buildout] zu installieren. Im folgenden wird die Vorgehensweise erläutert.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/collective/buildout.python buildout.python] ist ein Projekt auf Github, dass sich zum Ziel gemacht hat, auf (allen) vielen Plattformen diverse Distributionen von Python zu kompilieren. Man klont das Projekt:&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/collective/buildout.python.git ~/mypython&lt;br /&gt;
 cd ~/mypython&lt;br /&gt;
&lt;br /&gt;
Nun die buildout.cfg editieren: alle ungewollten Python-Distributionen auskommentieren (auch die pypy). Danach lässt man das Buildout durchlaufen.&lt;br /&gt;
&lt;br /&gt;
 python bootstrap.py&lt;br /&gt;
 bin/buildout&lt;br /&gt;
&lt;br /&gt;
Jetzt wird das Python runtergeladen, kompiliert und installiert.&lt;br /&gt;
Es lässt sich folgendermaßen aktivieren:&lt;br /&gt;
&lt;br /&gt;
 source ~/mypython/python-x.x/bin/activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3830</id>
		<title>Eigenes Python installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3830"/>
		<updated>2014-01-14T15:07:05Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigenes Python installieren ==&lt;br /&gt;
&lt;br /&gt;
Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein&lt;br /&gt;
&lt;br /&gt;
* Unabhängigkeit vom System-Python&lt;br /&gt;
* Volle Kontrolle über eingesetzte Python-Packages&lt;br /&gt;
* Freie Auswahl der Python-Distribution (z. B. die neueste)&lt;br /&gt;
&lt;br /&gt;
Ich empfehle Python mithilfe von [http://www.buildout.org/ buildout] zu installieren. Im folgenden wird die Vorgehensweise erläutert.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/collective/buildout.python buildout.python] ist ein Projekt auf Github, dass sich zum Ziel gemacht hat, auf (allen) vielen Plattformen diverse Distributionen von Python zu kompilieren. Man klont das Projekt:&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/collective/buildout.python.git ~/mypython&lt;br /&gt;
 cd ~/mypython&lt;br /&gt;
&lt;br /&gt;
Nun die buildout.cfg editieren: alle ungewollten Python-Distributionen auskommentieren (auch die pypy). Danach lässt mna das Buildout durchlaufen.&lt;br /&gt;
&lt;br /&gt;
 python bootstrap.py&lt;br /&gt;
 bin/buildout&lt;br /&gt;
&lt;br /&gt;
Jetzt wird das Python runtergeladen, kompiliert und installiert.&lt;br /&gt;
Es lässt sich folgendermaßen aktivieren:&lt;br /&gt;
&lt;br /&gt;
 source ~/mypython/python-x.x/bin/activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3829</id>
		<title>Eigenes Python installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3829"/>
		<updated>2014-01-14T15:06:20Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigenes Python installieren ==&lt;br /&gt;
&lt;br /&gt;
Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein&lt;br /&gt;
&lt;br /&gt;
* Unabhängigkeit vom System-Python&lt;br /&gt;
* Volle Kontrolle über eingesetzte Python-Packages&lt;br /&gt;
* Freie Auswahl der Python-Distribution (z. B. die neueste)&lt;br /&gt;
&lt;br /&gt;
Ich empfehle Python mithilfe von [http://www.buildout.org/ buildout] zu installieren. Im folgenden wird die Vorgehensweise erläutert.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/collective/buildout.python buildout.python] ist ein Projekt auf Github, dass sich zum Ziel gemacht hat, auf (allen) vielen Plattformen diverse Distributionen von Python zu kompilieren. Man klont das Projekt:&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/collective/buildout.python.git ~/mypython&lt;br /&gt;
 cd ~/mypython&lt;br /&gt;
&lt;br /&gt;
Nun die buildout.cfg editieren: alle ungewollten Python-Distributionen auskommentieren (auch die pypy).&lt;br /&gt;
&lt;br /&gt;
 python bootstrap.py&lt;br /&gt;
 bin/buildout&lt;br /&gt;
&lt;br /&gt;
Jetzt wird das Python runtergeladen, kompiliert und installiert.&lt;br /&gt;
Es lässt sich folgendermaßen aktivieren:&lt;br /&gt;
&lt;br /&gt;
 source ~/mypython/python-x.x/bin/activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3828</id>
		<title>Eigenes Python installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3828"/>
		<updated>2014-01-14T15:04:41Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigenes Python installieren ==&lt;br /&gt;
&lt;br /&gt;
Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein&lt;br /&gt;
&lt;br /&gt;
* Unabhängigkeit vom System-Python&lt;br /&gt;
* Volle Kontrolle über eingesetzte Python-Packages&lt;br /&gt;
* Freie Auswahl der Python-Distribution (z. B. die neueste)&lt;br /&gt;
&lt;br /&gt;
Ich empfehle Python mithilfe von [http://www.buildout.org/ buildout] zu installieren. Im folgenden wird die Vorgehensweise erläutert.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
buildout.python ist ein Projekt auf Github, dass sich zum Ziel gemacht hat, auf (allen) vielen Plattformen diverse Distributionen von Python zu kompilieren. Man klont das Projekt:&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/collective/buildout.python.git ~/mypython&lt;br /&gt;
 cd ~/mypython&lt;br /&gt;
&lt;br /&gt;
Nun die buildout.cfg editieren: alle ungewollten Python-Distributionen auskommentieren (auch die pypy).&lt;br /&gt;
&lt;br /&gt;
 python bootstrap.py&lt;br /&gt;
 bin/buildout&lt;br /&gt;
&lt;br /&gt;
Jetzt wird das Python runtergeladen, kompiliert und installiert.&lt;br /&gt;
Es lässt sich folgendermaßen aktivieren:&lt;br /&gt;
&lt;br /&gt;
 source ~/mypython/python-x.x/bin/activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3827</id>
		<title>Eigenes Python installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3827"/>
		<updated>2014-01-14T15:02:11Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Eigenes Python installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigenes Python installieren ==&lt;br /&gt;
&lt;br /&gt;
Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein&lt;br /&gt;
&lt;br /&gt;
* Unabhängigkeit vom System-Python&lt;br /&gt;
* Volle Kontrolle über eingesetzte Python-Packages&lt;br /&gt;
* Freie Auswahl der Python-Distribution (z. B. die neueste)&lt;br /&gt;
&lt;br /&gt;
Ich empfehle Python mithilfe von [http://www.buildout.org/ buildout] zu installieren. Im folgenden wird die Vorgehensweise erläutert.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Klone buildout.python&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/collective/buildout.python.git ~/mypython&lt;br /&gt;
 cd ~/mypython&lt;br /&gt;
&lt;br /&gt;
Nun die buildout.cfg editieren: alle ungewollten Python-Distributionen auskommentieren (auch die pypy).&lt;br /&gt;
&lt;br /&gt;
 python bootstrap.py&lt;br /&gt;
 bin/buildout&lt;br /&gt;
&lt;br /&gt;
Jetzt wird das Python runtergeladen, kompiliert und installiert.&lt;br /&gt;
Es lässt sich folgendermaßen aktivieren:&lt;br /&gt;
&lt;br /&gt;
 source ~/mypython/python-x.x/bin/activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Pyramid&amp;diff=3826</id>
		<title>Pyramid</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Pyramid&amp;diff=3826"/>
		<updated>2014-01-14T14:58:43Z</updated>

		<summary type="html">&lt;p&gt;Pro01: Die Seite wurde neu angelegt: „== Pyramid installieren ==  == Vorbereitungen ==  Man sollte in betracht ziehen, eine vom System-Python unabhängige Python-Umgebung zu installieren.  Dazu fol…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Pyramid installieren ==&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Man sollte in betracht ziehen, eine vom System-Python unabhängige Python-Umgebung zu installieren. &lt;br /&gt;
Dazu folgt man der Anleitung unter [[Python]].&lt;br /&gt;
Spätestens, wenn man mehrere Python-Applikationen unter einem User installieren will, sollte man eine isolierte Umgebung&lt;br /&gt;
mittels virtualenv erzeugen.&lt;br /&gt;
&lt;br /&gt;
Falls virtualenv noch nicht installiert ist:&lt;br /&gt;
&lt;br /&gt;
 pip install virtualenv&lt;br /&gt;
&lt;br /&gt;
Die nötige Isolation erreicht man durch Mitgabe des Parameters --no-site-packages.&lt;br /&gt;
&lt;br /&gt;
 virtualenv --no-site-packages pyramidenv&lt;br /&gt;
&lt;br /&gt;
Um Pyramid unter einer Internetadresse erreichbar zu machen, sollte man bereits eine Domain über hsadmin angelegt haben.&lt;br /&gt;
In diesem Beispiel wird sich auf die Domain example.de bezogen.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Dann installiert man Pyramid mithilfe des isolierten Pythons.&lt;br /&gt;
&lt;br /&gt;
 source pyramidenv/bin/activate&lt;br /&gt;
 pip install pyramid&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle wird nun ein leeres Pyramid-Projekt als Platzhalter für ein reeles Pyramid-Projekt erzeugt, obwohl man beim Deployment auf Hostsharing nun wahrscheinlich ein konkretes Projekt installieren würde. Drei Arten von Projekten können initial erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
* starter: URL mapping via URL dispatch und keinen Persistenz-Mechanismus.&lt;br /&gt;
* zodb: URL mapping via traversal und eine ZODB als Persistenz-Mechanismus.&lt;br /&gt;
* alchemy: URL mapping via URL dispatch und Persistenz über SQLAlchemy.&lt;br /&gt;
&lt;br /&gt;
Beispielhaft hier &amp;quot;starter&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 pyramidenv/bin/pcreate -s starter MyProject&lt;br /&gt;
 cd MyProject&lt;br /&gt;
 python setup.py install&lt;br /&gt;
&lt;br /&gt;
Das ist alles. Nun bringen wir die Pyramid-App per [[Flup]] und fastcgi ans Laufen. E ist zu beachten, dass in einem eigenen Python Flup noch nicht installiert ist. In diesem Fall einfach installieren:&lt;br /&gt;
&lt;br /&gt;
 pip install flup&lt;br /&gt;
&lt;br /&gt;
Nun erzeugt man im Verzeichnis ~/doms/example.de/fastcgi eine Datei z. B. namens myproject_pyramid.fcgi mit folgendem Inhalt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/home/pacs/xyz00/users/doms/pyramidenv/bin/python&lt;br /&gt;
import sys &lt;br /&gt;
&lt;br /&gt;
myapp = &#039;/home/pacs/xyz00/users/doms/MyProject/&#039;&lt;br /&gt;
inifile = &#039;production.ini&#039;&lt;br /&gt;
from paste.deploy import loadapp&lt;br /&gt;
wsgi_app = loadapp(&#039;config:&#039; + myapp + &#039;/&#039; + inifile)&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    from flup.server.fcgi import WSGIServer&lt;br /&gt;
    WSGIServer(wsgi_app).run()&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig: Diese Datei muss nun ausführbar gemacht werden.&lt;br /&gt;
&lt;br /&gt;
 chmod +x myproject_pyramid.fcgi&lt;br /&gt;
&lt;br /&gt;
In dem &amp;quot;htdocs&amp;quot;-Verzeichnis der Domain (~/doms/example.de/subs/www) bearbeitet man nun die .htaccess.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
AddHandler fastcgi-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/myproject_pyramid.fcgi/$1 [QSA,L]&lt;br /&gt;
AddType &amp;quot;text/html; charset=UTF-8&amp;quot; html&lt;br /&gt;
AddType &amp;quot;text/plain; charset=UTF-8&amp;quot; txt &lt;br /&gt;
AddCharset UTF-8 .html&lt;br /&gt;
AddDefaultCharset UTF-8&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun kann man die Standard-Pyramid-App im Browser unter http://www.example.de aufrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3825</id>
		<title>Eigenes Python installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=3825"/>
		<updated>2014-01-14T14:09:54Z</updated>

		<summary type="html">&lt;p&gt;Pro01: Die Seite wurde neu angelegt: „== Eigenes Python installieren ==  Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein  * Unabhängigkeit vom Syste…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigenes Python installieren ==&lt;br /&gt;
&lt;br /&gt;
Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein&lt;br /&gt;
&lt;br /&gt;
* Unabhängigkeit vom System-Python&lt;br /&gt;
* Volle Kontrolle über eingesetzte Python-Packages&lt;br /&gt;
* Freie Auswahl der Python-Distribution (z. B. die neueste)&lt;br /&gt;
&lt;br /&gt;
Ich empfehle Python mithilfe von [http://www.buildout.org/ buildout] zu installieren. Eine geeignetes Buildout- [https://github.com/collective/buildout.python buildout.python] zu verwenden. Im folgenden wird die Vorgehensweise erläutert.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Klone buildout.python&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/collective/buildout.python.git ~/mypython&lt;br /&gt;
 cd ~/mypython&lt;br /&gt;
&lt;br /&gt;
Nun die buildout.cfg editieren: alle ungewollten Python-Distributionen auskommentieren (auch die pypy).&lt;br /&gt;
&lt;br /&gt;
 python bootstrap.py&lt;br /&gt;
 bin/buildout&lt;br /&gt;
&lt;br /&gt;
Jetzt wird das Python runtergeladen, kompiliert und installiert.&lt;br /&gt;
Es lässt sich folgendermaßen aktivieren:&lt;br /&gt;
&lt;br /&gt;
 source ~/mypython/python-x.x/bin/activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3558</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3558"/>
		<updated>2013-03-18T14:28:02Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Konfiguration und Installation mit buildout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4109&#039;&#039;&#039;&lt;br /&gt;
Es wird ein [https://www.hostsharing.net/produkte/dynamische-webpakete Daemon] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.2 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
 Plone Version (Plone version # to install) [&#039;4.1&#039;]: 4.2&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.2/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.2&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Trac_Installieren&amp;diff=3552</id>
		<title>Trac Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Trac_Installieren&amp;diff=3552"/>
		<updated>2013-01-14T08:35:03Z</updated>

		<summary type="html">&lt;p&gt;Pro01: Änderung 3551 von Pro01 (Diskussion) rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Allgemeine Vorbereitungen&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Virtualenv für Trac anlegen...&lt;br /&gt;
&lt;br /&gt;
virtualenv --unzip-setuptools --no-site-packages \&lt;br /&gt;
--python=/usr/bin/python2.6 ${HOME}/trac&lt;br /&gt;
&lt;br /&gt;
# ...und aktivieren.&lt;br /&gt;
&lt;br /&gt;
source ${HOME}/trac/bin/activate&lt;br /&gt;
&lt;br /&gt;
# Diverse Python packages installieren&lt;br /&gt;
easy_install -Z Babel&lt;br /&gt;
easy_install -Z docutils&lt;br /&gt;
easy_install -Z Pygments&lt;br /&gt;
easy_install -Z pytz&lt;br /&gt;
easy_install -Z Trac&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Ab hier für jedes zu verwaltende Projekt:&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Project initialisieren&lt;br /&gt;
&lt;br /&gt;
# Das SVN lege ich gern nach /home/doms/example.com/svn&lt;br /&gt;
# Als DB eigent sich wahlweise die intern SQLite-DB&lt;br /&gt;
# oder eine PgSQL-DB. Ich wähle meistens SQLLite,&lt;br /&gt;
# weil das für typische, überschaubare Projekte genügt.&lt;br /&gt;
&lt;br /&gt;
trac-admin /home/doms/example.com/trac initenv&lt;br /&gt;
&lt;br /&gt;
# Danach statische Files erzeugen lassen:&lt;br /&gt;
&lt;br /&gt;
trac-admin /home/doms/example.com/trac \&lt;br /&gt;
deploy /home/doms/example.com/trac&lt;br /&gt;
&lt;br /&gt;
# Webroot anlegen&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/doms/example.com/subs/dev/chrome&lt;br /&gt;
&lt;br /&gt;
# Symlinks auf Trac-Deployment erzeugen&lt;br /&gt;
&lt;br /&gt;
ln -s /home/doms/example.com/trac/htdocs/* \ &lt;br /&gt;
/home/doms/example.com/subs/dev/chrome&lt;br /&gt;
&lt;br /&gt;
# FastCGI-Dateien ins fastcgi-Verzeichnis kopieren&lt;br /&gt;
# Wahlweise auch cgi (langsam) oder ins SSL-Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
cp -a /home/doms/example.com/trac/cgi-bin/trac.fcgi \&lt;br /&gt;
/home/doms/example.com/fastcgi&lt;br /&gt;
&lt;br /&gt;
# und ausführbar machen&lt;br /&gt;
&lt;br /&gt;
chmod a+x /home/doms/example.com/fastcgi/trac.fcgi&lt;br /&gt;
&lt;br /&gt;
# .htaccess in /home/doms/example.com/subs/dev erzeugen mit:&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteBase /&lt;br /&gt;
RewriteRule ^chrome/ - [last]&lt;br /&gt;
RewriteRule ^(.*) /fastcgi-bin/trac.fcgi/$1 [last]&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Und weiter (nach Original-Doku):&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
* Subversion-Instanz anlegen/importieren oder umziehen&lt;br /&gt;
* User mit Trac-Admin anlegen&lt;br /&gt;
* Plugins installieren&lt;br /&gt;
* Auf Wunsch hooks in SVN zu Ansteuerung einbauen&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Tipps&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
* Ich nehme &amp;quot;source ${HOME}/trac/bin/activate&amp;quot; in die .profile auf&lt;br /&gt;
* SVN-Zugriff im Tunnel-Mode per ssh forced commands ist so möglich (eine Zeile):&lt;br /&gt;
&lt;br /&gt;
command=&amp;quot;/usr/bin/svnserve -t --tunnel-user=&amp;lt;username&amp;gt; -r /home/doms/example.com/svn&amp;quot;,no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty &amp;lt;public-key&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Trac_Installieren&amp;diff=3551</id>
		<title>Trac Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Trac_Installieren&amp;diff=3551"/>
		<updated>2013-01-14T08:33:53Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Allgemeine Vorbereitungen&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Virtualenv für Trac anlegen...&lt;br /&gt;
&lt;br /&gt;
virtualenv --unzip-setuptools \&lt;br /&gt;
--python=/usr/bin/python2.6 ${HOME}/trac&lt;br /&gt;
&lt;br /&gt;
# ...und aktivieren.&lt;br /&gt;
&lt;br /&gt;
source ${HOME}/trac/bin/activate&lt;br /&gt;
&lt;br /&gt;
# Diverse Python packages installieren&lt;br /&gt;
easy_install -Z Babel&lt;br /&gt;
easy_install -Z docutils&lt;br /&gt;
easy_install -Z Pygments&lt;br /&gt;
easy_install -Z pytz&lt;br /&gt;
easy_install -Z Trac&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Ab hier für jedes zu verwaltende Projekt:&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Project initialisieren&lt;br /&gt;
&lt;br /&gt;
# Das SVN lege ich gern nach /home/doms/example.com/svn&lt;br /&gt;
# Als DB eigent sich wahlweise die intern SQLite-DB&lt;br /&gt;
# oder eine PgSQL-DB. Ich wähle meistens SQLLite,&lt;br /&gt;
# weil das für typische, überschaubare Projekte genügt.&lt;br /&gt;
&lt;br /&gt;
trac-admin /home/doms/example.com/trac initenv&lt;br /&gt;
&lt;br /&gt;
# Danach statische Files erzeugen lassen:&lt;br /&gt;
&lt;br /&gt;
trac-admin /home/doms/example.com/trac \&lt;br /&gt;
deploy /home/doms/example.com/trac&lt;br /&gt;
&lt;br /&gt;
# Webroot anlegen&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/doms/example.com/subs/dev/chrome&lt;br /&gt;
&lt;br /&gt;
# Symlinks auf Trac-Deployment erzeugen&lt;br /&gt;
&lt;br /&gt;
ln -s /home/doms/example.com/trac/htdocs/* \ &lt;br /&gt;
/home/doms/example.com/subs/dev/chrome&lt;br /&gt;
&lt;br /&gt;
# FastCGI-Dateien ins fastcgi-Verzeichnis kopieren&lt;br /&gt;
# Wahlweise auch cgi (langsam) oder ins SSL-Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
cp -a /home/doms/example.com/trac/cgi-bin/trac.fcgi \&lt;br /&gt;
/home/doms/example.com/fastcgi&lt;br /&gt;
&lt;br /&gt;
# und ausführbar machen&lt;br /&gt;
&lt;br /&gt;
chmod a+x /home/doms/example.com/fastcgi/trac.fcgi&lt;br /&gt;
&lt;br /&gt;
# .htaccess in /home/doms/example.com/subs/dev erzeugen mit:&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteBase /&lt;br /&gt;
RewriteRule ^chrome/ - [last]&lt;br /&gt;
RewriteRule ^(.*) /fastcgi-bin/trac.fcgi/$1 [last]&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Und weiter (nach Original-Doku):&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
* Subversion-Instanz anlegen/importieren oder umziehen&lt;br /&gt;
* User mit Trac-Admin anlegen&lt;br /&gt;
* Plugins installieren&lt;br /&gt;
* Auf Wunsch hooks in SVN zu Ansteuerung einbauen&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Tipps&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
* Ich nehme &amp;quot;source ${HOME}/trac/bin/activate&amp;quot; in die .profile auf&lt;br /&gt;
* SVN-Zugriff im Tunnel-Mode per ssh forced commands ist so möglich (eine Zeile):&lt;br /&gt;
&lt;br /&gt;
command=&amp;quot;/usr/bin/svnserve -t --tunnel-user=&amp;lt;username&amp;gt; -r /home/doms/example.com/svn&amp;quot;,no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty &amp;lt;public-key&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Django_installieren&amp;diff=3391</id>
		<title>Django installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Django_installieren&amp;diff=3391"/>
		<updated>2012-08-01T15:11:32Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Nutzung mit WSGI via flup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Installation Djangobibliothek===&lt;br /&gt;
Die Djangobibliotheken werden in einer Virtualenv-Umgebung installiert. Vorraussetzung ist ein auf dem System installiertes python mit einem virtualenv-Paket&lt;br /&gt;
Zun&amp;amp;auml;chst wird die Virtualenvumgebung erstellt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms:~$ virtualenv djangoenv&lt;br /&gt;
New python executable in djangoenv/bin/python&lt;br /&gt;
Installing setuptools............done.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dann werden die Django-Bibliotheken in die eben erstellte Virtualenvumgebung installiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ djangoenv/bin/easy_install django&lt;br /&gt;
Searching for django&lt;br /&gt;
Reading http://pypi.python.org/simple/django/&lt;br /&gt;
Reading http://www.djangoproject.com/&lt;br /&gt;
Best match: Django 1.3&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Finished processing dependencies for django&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Testen, ob Django installiert ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ djangoenv/bin/python&lt;br /&gt;
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) &lt;br /&gt;
[GCC 4.4.5] on linux2&lt;br /&gt;
Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import django&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mit Ctrl-D kann die Konsole wieder verlassen werden.&lt;br /&gt;
&lt;br /&gt;
===Django-Projekt===&lt;br /&gt;
Dann wird das Django Projekt im Bereich einer Domain abgelegt. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ cd ~/doms/example.com/&lt;br /&gt;
xyz-doms:~$ /path_to_djangoenv/djangoenv/bin/django-admin.py startproject djangoprojekt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt kann man unter Verwendung des Pythons der Virtualenv testen, ob Django läuft.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00: /path_to_djangoenv/djangoenv/bin/python manage.py runserver &lt;br /&gt;
Validating models...&lt;br /&gt;
&lt;br /&gt;
0 errors found&lt;br /&gt;
Django version 1.3, using settings &#039;mysite.settings&#039;&lt;br /&gt;
Development server is running at http://127.0.0.1:8000/&lt;br /&gt;
Quit the server with CONTROL-C.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... und die &#039;&#039;settings.py&#039;&#039; an die Hostsharing-Pfade angepasst.&lt;br /&gt;
&lt;br /&gt;
===Nutzung mit FastCGI===&lt;br /&gt;
Zunächst richtet man den FastCGI-Skript (django.fcgi) ein und legt es im fastcgi-Verzeichnis ab und macht es ausführbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/path_to_djangoenv/djangoenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import os, sys&lt;br /&gt;
os.chdir(&amp;quot;/path_to_doms/doms/example.com/djangoprojekt/&amp;quot;)&lt;br /&gt;
os.environ[&#039;DJANGO_SETTINGS_MODULE&#039;]= &amp;quot;djangoprojekt.settings&amp;quot;&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/djangoprojekt/&amp;quot;)&lt;br /&gt;
from django.core.servers.fastcgi import runfastcgi&lt;br /&gt;
runfastcgi(method=&amp;quot;threaded&amp;quot;, daemonize=&amp;quot;false&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Djangoprojekt sollte jetzt unter example.com/fastcgi-bin/django.fcgi erreichbar sein.&lt;br /&gt;
&lt;br /&gt;
===Nutzung mit WSGI via flup===&lt;br /&gt;
Zunächst legt man das FastCGI-Skript (django.fcgi) an und legt es im fastcgi-Verzeichnis ab und macht es ausführbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/path_to_djangoenv/djangoenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import os, sys&lt;br /&gt;
os.chdir(&amp;quot;/path_to_doms/doms/example.com/django&amp;quot;)&lt;br /&gt;
os.environ[&#039;DJANGO_SETTINGS_MODULE&#039;]= &amp;quot;djangoprojekt.settings&amp;quot;&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/django&amp;quot;)&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/django/djangoprojekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
from flup.server.fcgi import WSGIServer&lt;br /&gt;
from django.core.handlers.wsgi import WSGIHandler&lt;br /&gt;
WSGIServer(WSGIHandler()).run()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Djangoprojekt sollte jetzt unter example.com/fastcgi-bin/django.fcgi erreichbar sein.&lt;br /&gt;
Tipp: Manchmal werden Änderungen in den Quellen, insbesondere der settings.py nicht übernommen. Dann hilft es den Zeitstempel der Datei django.fcgi mit touch zu aktualisieren.&lt;br /&gt;
&lt;br /&gt;
===Apache Weiterleitung===&lt;br /&gt;
Nun wird das Djangoprojekt unter www.example.com verf&amp;amp;uuml;gbar gemacht.&lt;br /&gt;
Hierf&amp;amp;uuml;r wird eine .htaccess im entsprechenden Domainverzeichnis angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/django.fcgi/$1 [QSA,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nun sollte die Seite unter (www.)example.com erreichbar sein.&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3390</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3390"/>
		<updated>2012-08-01T12:32:59Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4109&#039;&#039;&#039;&lt;br /&gt;
Es wird ein [https://www.hostsharing.net/produkte/dynamische-webpakete Daemon] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.2 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
 Plone Version (Plone version # to install) [&#039;4.1&#039;]: 4.2&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Django_installieren&amp;diff=3360</id>
		<title>Django installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Django_installieren&amp;diff=3360"/>
		<updated>2012-06-19T20:55:09Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Installation Djangobibliothek */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Installation Djangobibliothek===&lt;br /&gt;
Die Djangobibliotheken werden in einer Virtualenv-Umgebung installiert. Vorraussetzung ist ein auf dem System installiertes python mit einem virtualenv-Paket&lt;br /&gt;
Zun&amp;amp;auml;chst wird die Virtualenvumgebung erstellt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms:~$ virtualenv djangoenv&lt;br /&gt;
New python executable in djangoenv/bin/python&lt;br /&gt;
Installing setuptools............done.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dann werden die Django-Bibliotheken in die eben erstellte Virtualenvumgebung installiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ djangoenv/bin/easy_install django&lt;br /&gt;
Searching for django&lt;br /&gt;
Reading http://pypi.python.org/simple/django/&lt;br /&gt;
Reading http://www.djangoproject.com/&lt;br /&gt;
Best match: Django 1.3&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Finished processing dependencies for django&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Testen, ob Django installiert ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ djangoenv/bin/python&lt;br /&gt;
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) &lt;br /&gt;
[GCC 4.4.5] on linux2&lt;br /&gt;
Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import django&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mit Ctrl-D kann die Konsole wieder verlassen werden.&lt;br /&gt;
&lt;br /&gt;
===Django-Projekt===&lt;br /&gt;
Dann wird das Django Projekt im Bereich einer Domain abgelegt. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ cd ~/doms/example.com/&lt;br /&gt;
xyz-doms:~$ /path_to_djangoenv/djangoenv/bin/django-admin.py startproject djangoprojekt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt kann man unter Verwendung des Pythons der Virtualenv testen, ob Django läuft.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00: /path_to_djangoenv/djangoenv/bin/python manage.py runserver &lt;br /&gt;
Validating models...&lt;br /&gt;
&lt;br /&gt;
0 errors found&lt;br /&gt;
Django version 1.3, using settings &#039;mysite.settings&#039;&lt;br /&gt;
Development server is running at http://127.0.0.1:8000/&lt;br /&gt;
Quit the server with CONTROL-C.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... und die &#039;&#039;settings.py&#039;&#039; an die Hostsharing-Pfade angepasst.&lt;br /&gt;
&lt;br /&gt;
===Nutzung mit FastCGI===&lt;br /&gt;
Zunächst richtet man den FastCGI-Skript (django.fcgi) ein und legt es im fastcgi-Verzeichnis ab und macht es ausführbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/path_to_djangoenv/djangoenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import os, sys&lt;br /&gt;
os.chdir(&amp;quot;/path_to_doms/doms/example.com/djangoprojekt/&amp;quot;)&lt;br /&gt;
os.environ[&#039;DJANGO_SETTINGS_MODULE&#039;]= &amp;quot;djangoprojekt.settings&amp;quot;&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/djangoprojekt/&amp;quot;)&lt;br /&gt;
from django.core.servers.fastcgi import runfastcgi&lt;br /&gt;
runfastcgi(method=&amp;quot;threaded&amp;quot;, daemonize=&amp;quot;false&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Djangoprojekt sollte jetzt unter example.com/fastcgi-bin/django.fcgi erreichbar sein.&lt;br /&gt;
&lt;br /&gt;
===Nutzung mit WSGI via flup===&lt;br /&gt;
Zunächst richtet man den FastCGI-Skript (django.fcgi) ein und legt es im fastcgi-Verzeichnis ab und macht es ausführbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/path_to_djangoenv/djangoenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import os, sys&lt;br /&gt;
os.chdir(&amp;quot;/path_to_doms/doms/example.com/django&amp;quot;)&lt;br /&gt;
os.environ[&#039;DJANGO_SETTINGS_MODULE&#039;]= &amp;quot;djangoprojekt.settings&amp;quot;&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/django&amp;quot;)&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/django/djangoprojekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
from flup.server.fcgi import WSGIServer&lt;br /&gt;
from django.core.handlers.wsgi import WSGIHandler&lt;br /&gt;
WSGIServer(WSGIHandler()).run()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Djangoprojekt sollte jetzt unter example.com/fastcgi-bin/django.fcgi erreichbar sein.&lt;br /&gt;
Tipp: Manchmal werden Änderungen in den Quellen, insbesondere der settings.py nicht übernommen. Dann hilft es den Zeitstempel der Datei django.fcgi mit touch zu aktualisieren.&lt;br /&gt;
&lt;br /&gt;
===Apache Weiterleitung===&lt;br /&gt;
Nun wird das Djangoprojekt unter www.example.com verf&amp;amp;uuml;gbar gemacht.&lt;br /&gt;
Hierf&amp;amp;uuml;r wird eine .htaccess im entsprechenden Domainverzeichnis angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/django.fcgi/$1 [QSA,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nun sollte die Seite unter (www.)example.com erreichbar sein.&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3085</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3085"/>
		<updated>2012-01-20T10:34:27Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* automatisches Packen der ZopeDB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3084</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3084"/>
		<updated>2012-01-20T10:34:15Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* automatisches Starten nach Server-Reboot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3083</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3083"/>
		<updated>2012-01-20T10:34:01Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Konfiguration von Apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3082</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3082"/>
		<updated>2012-01-20T10:33:47Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* automatisches Packen der ZopeDB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3081</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3081"/>
		<updated>2012-01-20T10:33:33Z</updated>

		<summary type="html">&lt;p&gt;Pro01: Änderung 3080 von Pro01 (Diskussion) rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3080</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3080"/>
		<updated>2012-01-20T10:32:37Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* automatisches Packen der ZopeDB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3079</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3079"/>
		<updated>2012-01-20T10:32:24Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* WEBDAV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3078</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3078"/>
		<updated>2012-01-20T10:32:15Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WEBDAV ==&lt;br /&gt;
Um den webdav client zu aktivieren muss man in der zope.conf (die Datei ist in ~/plone3.2/parts/ folgendes hizufügen&lt;br /&gt;
&lt;br /&gt;
 [zope.conf]&lt;br /&gt;
 [...]&lt;br /&gt;
 &amp;lt;webdav-source-server&amp;gt;&lt;br /&gt;
    # valid keys are &amp;quot;address&amp;quot; and &amp;quot;force-connection-close&amp;quot;&lt;br /&gt;
    address  www.example.com1980&lt;br /&gt;
    force-connection-close off&lt;br /&gt;
 &amp;lt;/webdav-source-server&amp;gt;&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Dieses aktiviert den webdav server unter &#039;http://www.example.com:1980/&#039;&lt;br /&gt;
&lt;br /&gt;
Um unter Windows das plone root directory mappen zu können, ist es am Einfachsten die Freeware &amp;quot;netdrive&amp;quot; herunter zuladen und zu benutzen.&lt;br /&gt;
Die interne Windows lösung  birgt Schwierigkeiten und ist nicht zu empfehlen siehe http://en.wikipedia.org/wiki/WebDAV&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3077</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3077"/>
		<updated>2012-01-20T10:32:05Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xy00-plone statt.&lt;br /&gt;
Die Installation von Plone 3.2.1 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.4.5/bin/paster create -t plone3_buildout plone3.2&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone3_buildout  A buildout for Plone 3 projects&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone3.2&lt;br /&gt;
  package:  plone32&lt;br /&gt;
  project:  plone3.2&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone3.2/&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ /opt/python/2.4.5/bin/python2.4 ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =&lt;br /&gt;
    zope2&lt;br /&gt;
    productdistros&lt;br /&gt;
    instance&lt;br /&gt;
    zopepy&lt;br /&gt;
 &lt;br /&gt;
 # Change the number here to change the version of Plone being used&lt;br /&gt;
 extends = http://dist.plone.org/release/3.2.1/versions.cfg&lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
    http://dist.plone.org/release/3.2.1&lt;br /&gt;
    http://download.zope.org/ppix/&lt;br /&gt;
    http://download.zope.org/distribution/&lt;br /&gt;
    http://effbot.org/downloads&lt;br /&gt;
 &lt;br /&gt;
 # Add additional eggs here&lt;br /&gt;
 eggs =&lt;br /&gt;
 &lt;br /&gt;
 # Reference any eggs you are developing here, one per line&lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 [zope2]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.zope2install&lt;br /&gt;
 recipe = plone.recipe.zope2install&lt;br /&gt;
 fake-zope-eggs = true&lt;br /&gt;
 additional-fake-eggs = &lt;br /&gt;
    ZODB3&lt;br /&gt;
 url = ${versions:zope2-url}&lt;br /&gt;
 &lt;br /&gt;
 # Use this section to download additional old-style products.&lt;br /&gt;
 # List any number of URLs for product tarballs under URLs (separate&lt;br /&gt;
 # with whitespace, or break over several lines, with subsequent lines&lt;br /&gt;
 # indented). If any archives contain several products inside a top-level&lt;br /&gt;
 # directory, list the archive file name (i.e. the last part of the URL,&lt;br /&gt;
 # normally with a .tar.gz suffix or similar) under &#039;nested-packages&#039;.&lt;br /&gt;
 # If any archives extract to a product directory with a version suffix, list&lt;br /&gt;
 # the archive name under &#039;version-suffix-packages&#039;.&lt;br /&gt;
 [productdistros]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.distros&lt;br /&gt;
 recipe = plone.recipe.distros&lt;br /&gt;
 urls =&lt;br /&gt;
 nested-packages =&lt;br /&gt;
 version-suffix-packages =&lt;br /&gt;
 &lt;br /&gt;
 [instance]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.zope2instance&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 zope2-location = ${zope2:location}&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039; http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 #debug-mode = on&lt;br /&gt;
 #verbose-security = on&lt;br /&gt;
 &lt;br /&gt;
 # If you want Zope to know about any additional eggs, list them here.&lt;br /&gt;
 # This should include any development eggs you listed in develop-eggs above,&lt;br /&gt;
 # e.g. eggs = Plone my.package&lt;br /&gt;
 eggs =&lt;br /&gt;
    Plone&lt;br /&gt;
    ${buildout:eggs}&lt;br /&gt;
     &lt;br /&gt;
  &lt;br /&gt;
 # If you want to register ZCML slugs for any packages, list them here.&lt;br /&gt;
 # e.g. zcml = my.package my.other.package&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 products =&lt;br /&gt;
    ${buildout:directory}/products&lt;br /&gt;
    ${productdistros:location}&lt;br /&gt;
 &lt;br /&gt;
 [zopepy]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/zc.recipe.egg&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 extra-paths = ${zope2:location}/lib/python&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone3.1$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten aus der Drop Down-Liste &amp;quot;Plone Site&amp;quot; ausgewählt und per &amp;quot;Add&amp;quot; hinzugefügt. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/${escape:$1} [P,L]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/${escape:$1} [P,L]&lt;br /&gt;
	&lt;br /&gt;
== WEBDAV ==&lt;br /&gt;
Um den webdav client zu aktivieren muss man in der zope.conf (die Datei ist in ~/plone3.2/parts/ folgendes hizufügen&lt;br /&gt;
&lt;br /&gt;
 [zope.conf]&lt;br /&gt;
 [...]&lt;br /&gt;
 &amp;lt;webdav-source-server&amp;gt;&lt;br /&gt;
    # valid keys are &amp;quot;address&amp;quot; and &amp;quot;force-connection-close&amp;quot;&lt;br /&gt;
    address  www.example.com1980&lt;br /&gt;
    force-connection-close off&lt;br /&gt;
 &amp;lt;/webdav-source-server&amp;gt;&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Dieses aktiviert den webdav server unter &#039;http://www.example.com:1980/&#039;&lt;br /&gt;
&lt;br /&gt;
Um unter Windows das plone root directory mappen zu können, ist es am Einfachsten die Freeware &amp;quot;netdrive&amp;quot; herunter zuladen und zu benutzen.&lt;br /&gt;
Die interne Windows lösung  birgt Schwierigkeiten und ist nicht zu empfehlen siehe http://en.wikipedia.org/wiki/WebDAV&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3076</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3076"/>
		<updated>2012-01-20T10:29:04Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* automatisches Starten nach Server-Reboot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 3.2.1&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.4.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xy00-plone statt.&lt;br /&gt;
Die Installation von Plone 3.2.1 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.4.5/bin/paster create -t plone3_buildout plone3.2&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone3_buildout  A buildout for Plone 3 projects&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone3.2&lt;br /&gt;
  package:  plone32&lt;br /&gt;
  project:  plone3.2&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone3.2/&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ /opt/python/2.4.5/bin/python2.4 ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =&lt;br /&gt;
    zope2&lt;br /&gt;
    productdistros&lt;br /&gt;
    instance&lt;br /&gt;
    zopepy&lt;br /&gt;
 &lt;br /&gt;
 # Change the number here to change the version of Plone being used&lt;br /&gt;
 extends = http://dist.plone.org/release/3.2.1/versions.cfg&lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
    http://dist.plone.org/release/3.2.1&lt;br /&gt;
    http://download.zope.org/ppix/&lt;br /&gt;
    http://download.zope.org/distribution/&lt;br /&gt;
    http://effbot.org/downloads&lt;br /&gt;
 &lt;br /&gt;
 # Add additional eggs here&lt;br /&gt;
 eggs =&lt;br /&gt;
 &lt;br /&gt;
 # Reference any eggs you are developing here, one per line&lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 [zope2]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.zope2install&lt;br /&gt;
 recipe = plone.recipe.zope2install&lt;br /&gt;
 fake-zope-eggs = true&lt;br /&gt;
 additional-fake-eggs = &lt;br /&gt;
    ZODB3&lt;br /&gt;
 url = ${versions:zope2-url}&lt;br /&gt;
 &lt;br /&gt;
 # Use this section to download additional old-style products.&lt;br /&gt;
 # List any number of URLs for product tarballs under URLs (separate&lt;br /&gt;
 # with whitespace, or break over several lines, with subsequent lines&lt;br /&gt;
 # indented). If any archives contain several products inside a top-level&lt;br /&gt;
 # directory, list the archive file name (i.e. the last part of the URL,&lt;br /&gt;
 # normally with a .tar.gz suffix or similar) under &#039;nested-packages&#039;.&lt;br /&gt;
 # If any archives extract to a product directory with a version suffix, list&lt;br /&gt;
 # the archive name under &#039;version-suffix-packages&#039;.&lt;br /&gt;
 [productdistros]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.distros&lt;br /&gt;
 recipe = plone.recipe.distros&lt;br /&gt;
 urls =&lt;br /&gt;
 nested-packages =&lt;br /&gt;
 version-suffix-packages =&lt;br /&gt;
 &lt;br /&gt;
 [instance]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.zope2instance&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 zope2-location = ${zope2:location}&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039; http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 #debug-mode = on&lt;br /&gt;
 #verbose-security = on&lt;br /&gt;
 &lt;br /&gt;
 # If you want Zope to know about any additional eggs, list them here.&lt;br /&gt;
 # This should include any development eggs you listed in develop-eggs above,&lt;br /&gt;
 # e.g. eggs = Plone my.package&lt;br /&gt;
 eggs =&lt;br /&gt;
    Plone&lt;br /&gt;
    ${buildout:eggs}&lt;br /&gt;
     &lt;br /&gt;
  &lt;br /&gt;
 # If you want to register ZCML slugs for any packages, list them here.&lt;br /&gt;
 # e.g. zcml = my.package my.other.package&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 products =&lt;br /&gt;
    ${buildout:directory}/products&lt;br /&gt;
    ${productdistros:location}&lt;br /&gt;
 &lt;br /&gt;
 [zopepy]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/zc.recipe.egg&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 extra-paths = ${zope2:location}/lib/python&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone3.1$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten aus der Drop Down-Liste &amp;quot;Plone Site&amp;quot; ausgewählt und per &amp;quot;Add&amp;quot; hinzugefügt. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/${escape:$1} [P,L]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/${escape:$1} [P,L]&lt;br /&gt;
	&lt;br /&gt;
== WEBDAV ==&lt;br /&gt;
Um den webdav client zu aktivieren muss man in der zope.conf (die Datei ist in ~/plone3.2/parts/ folgendes hizufügen&lt;br /&gt;
&lt;br /&gt;
 [zope.conf]&lt;br /&gt;
 [...]&lt;br /&gt;
 &amp;lt;webdav-source-server&amp;gt;&lt;br /&gt;
    # valid keys are &amp;quot;address&amp;quot; and &amp;quot;force-connection-close&amp;quot;&lt;br /&gt;
    address  www.example.com1980&lt;br /&gt;
    force-connection-close off&lt;br /&gt;
 &amp;lt;/webdav-source-server&amp;gt;&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Dieses aktiviert den webdav server unter &#039;http://www.example.com:1980/&#039;&lt;br /&gt;
&lt;br /&gt;
Um unter Windows das plone root directory mappen zu können, ist es am Einfachsten die Freeware &amp;quot;netdrive&amp;quot; herunter zuladen und zu benutzen.&lt;br /&gt;
Die interne Windows lösung  birgt Schwierigkeiten und ist nicht zu empfehlen siehe http://en.wikipedia.org/wiki/WebDAV&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plone 4 installieren ==&lt;br /&gt;
== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 4.1.3&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xyz00-plone statt.&lt;br /&gt;
Die Installation von Plone 4.1.3 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.6/bin/paster create -t plone4_buildout plone4&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone4&lt;br /&gt;
  package:  plone4&lt;br /&gt;
  project:  plone4&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone4/&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ /opt/python/2.6/bin/python ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 # buildout.cfg file for Plone 4 development work&lt;br /&gt;
 # - for production installations please use http://plone.org/download&lt;br /&gt;
 # Each part has more information about its recipe on PyPi&lt;br /&gt;
 # http://pypi.python.org/pypi &lt;br /&gt;
 # ... just reach by the recipe name&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =  &lt;br /&gt;
     instance&lt;br /&gt;
     zopepy&lt;br /&gt;
     i18ndude&lt;br /&gt;
     zopeskel&lt;br /&gt;
     test&lt;br /&gt;
 #    omelette&lt;br /&gt;
 &lt;br /&gt;
 extends = &lt;br /&gt;
     http://dist.plone.org/release/4.1/versions.cfg&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
     http://dist.plone.org/release/4.1&lt;br /&gt;
     http://dist.plone.org/thirdparty&lt;br /&gt;
 &lt;br /&gt;
 extensions = &lt;br /&gt;
     mr.developer&lt;br /&gt;
     buildout.dumppickedversions&lt;br /&gt;
 &lt;br /&gt;
 sources = sources&lt;br /&gt;
 &lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Reference any folders where you have Python egg source code under development here &lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 # If you are using the mr.developer extension and have the source code in a &lt;br /&gt;
 # repository mr.developer will handle this automatically for you&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create bin/instance command to manage Zope start up and shutdown&lt;br /&gt;
 [instance]&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 user = admin:admin&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 debug-mode = off&lt;br /&gt;
 verbose-security = on&lt;br /&gt;
 blob-storage = var/blobstorage&lt;br /&gt;
 &lt;br /&gt;
 eggs =&lt;br /&gt;
     PIL&lt;br /&gt;
     Plone&lt;br /&gt;
 &lt;br /&gt;
 # Some pre-Plone 3.3 packages may need you to register the package name here in &lt;br /&gt;
 # order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)&lt;br /&gt;
 # - this is never required for packages in the Products namespace (Products.*)&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # zopepy commands allows you to execute Python scripts using a PYTHONPATH &lt;br /&gt;
 # including all the configured eggs&lt;br /&gt;
 [zopepy]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
 &lt;br /&gt;
 # create bin/i18ndude command&lt;br /&gt;
 [i18ndude]&lt;br /&gt;
 unzip = true&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = i18ndude&lt;br /&gt;
 &lt;br /&gt;
 # create bin/test command&lt;br /&gt;
 [test]&lt;br /&gt;
 recipe = zc.recipe.testrunner&lt;br /&gt;
 defaults = [&#039;--auto-color&#039;, &#039;--auto-progress&#039;]&lt;br /&gt;
 eggs =&lt;br /&gt;
     ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # create ZopeSkel and paster commands with dexterity support&lt;br /&gt;
 [zopeskel]&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs =&lt;br /&gt;
     ZopeSkel&lt;br /&gt;
     PasteScript&lt;br /&gt;
     zopeskel.dexterity&lt;br /&gt;
 &lt;br /&gt;
 # symlinks all Python source code to parts/omelette folder when buildout is run&lt;br /&gt;
 # windows users will need to install additional software for this part to build &lt;br /&gt;
 # correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for&lt;br /&gt;
 # relevant details.&lt;br /&gt;
 # [omelette]&lt;br /&gt;
 # recipe = collective.recipe.omelette&lt;br /&gt;
 # eggs = ${instance:eggs}&lt;br /&gt;
 &lt;br /&gt;
 # Put your mr.developer managed source code repositories here, see&lt;br /&gt;
 # http://pypi.python.org/pypi/mr.developer for details on the format of&lt;br /&gt;
 # this part&lt;br /&gt;
 [sources]&lt;br /&gt;
 #collective.developermanual = git git://github.com/collective/collective.developermanual.git&lt;br /&gt;
 &lt;br /&gt;
 # Version pindowns for new style products go here - this section extends one &lt;br /&gt;
 # provided in http://dist.plone.org/release/&lt;br /&gt;
 [versions]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone4$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button &amp;quot;Add Plone Site&amp;quot; klicken. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site_example_com mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/$1 [proxy,last]&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3075</id>
		<title>Plone Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Plone_Installieren&amp;diff=3075"/>
		<updated>2012-01-20T09:58:02Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* automatisches Packen der ZopeDB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version ==&lt;br /&gt;
&#039;&#039;&#039;Plone: 3.2.1&#039;&#039;&#039;&lt;br /&gt;
Es wird die [http://www.hostsharing.net/produkte/optionen.html#c1068 ZOPE Option] benötigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Python: 2.4.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
In der Anleitung findet die Installation im Home-Verzeichnis des accountes xy00-plone statt.&lt;br /&gt;
Die Installation von Plone 3.2.1 erfolgt weitgehend automatisiert mit Hilfe von buildout, einer Software zur &lt;br /&gt;
Erzeugung reproduzierbarer Installationen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Umgebung mit Paste Script für das buildout ===&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit Hilfe von Paste Script eine Umgebung erzeugt:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ /opt/python/2.4.5/bin/paster create -t plone3_buildout plone3.2&lt;br /&gt;
&lt;br /&gt;
 Scriptausgabe mit Eingabeaufforderung:&lt;br /&gt;
 &lt;br /&gt;
 Selected and implied templates:&lt;br /&gt;
  ZopeSkel#plone3_buildout  A buildout for Plone 3 projects&lt;br /&gt;
 &lt;br /&gt;
 Variables:&lt;br /&gt;
  egg:      plone3.2&lt;br /&gt;
  package:  plone32&lt;br /&gt;
  project:  plone3.2&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Eingabeaufforderungen können  ohne Eingabe mit ENTER bestätigt werden, da diese Einstellungen später ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Nach der Erzeugung der Umgebung muss diese einmalig initialisiert werden:&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ cd plone3.2/&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ /opt/python/2.4.5/bin/python2.4 ./bootstrap.py&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration und Installation mit buildout ===&lt;br /&gt;
&lt;br /&gt;
Anschließend muss die zentrale Konfigurationsdatei durch die folgenden Inhalte ersetzt werden. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.&lt;br /&gt;
&lt;br /&gt;
Shell Befehl&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ nano buildout.cfg&lt;br /&gt;
&lt;br /&gt;
Inhalt der buildout.cfg&lt;br /&gt;
&lt;br /&gt;
 [buildout]&lt;br /&gt;
 parts =&lt;br /&gt;
    zope2&lt;br /&gt;
    productdistros&lt;br /&gt;
    instance&lt;br /&gt;
    zopepy&lt;br /&gt;
 &lt;br /&gt;
 # Change the number here to change the version of Plone being used&lt;br /&gt;
 extends = http://dist.plone.org/release/3.2.1/versions.cfg&lt;br /&gt;
 versions = versions&lt;br /&gt;
 &lt;br /&gt;
 # Add additional egg download sources here. dist.plone.org contains archives&lt;br /&gt;
 # of Plone packages.&lt;br /&gt;
 find-links =&lt;br /&gt;
    http://dist.plone.org/release/3.2.1&lt;br /&gt;
    http://download.zope.org/ppix/&lt;br /&gt;
    http://download.zope.org/distribution/&lt;br /&gt;
    http://effbot.org/downloads&lt;br /&gt;
 &lt;br /&gt;
 # Add additional eggs here&lt;br /&gt;
 eggs =&lt;br /&gt;
 &lt;br /&gt;
 # Reference any eggs you are developing here, one per line&lt;br /&gt;
 # e.g.: develop = src/my.package&lt;br /&gt;
 develop =&lt;br /&gt;
 &lt;br /&gt;
 [zope2]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.zope2install&lt;br /&gt;
 recipe = plone.recipe.zope2install&lt;br /&gt;
 fake-zope-eggs = true&lt;br /&gt;
 additional-fake-eggs = &lt;br /&gt;
    ZODB3&lt;br /&gt;
 url = ${versions:zope2-url}&lt;br /&gt;
 &lt;br /&gt;
 # Use this section to download additional old-style products.&lt;br /&gt;
 # List any number of URLs for product tarballs under URLs (separate&lt;br /&gt;
 # with whitespace, or break over several lines, with subsequent lines&lt;br /&gt;
 # indented). If any archives contain several products inside a top-level&lt;br /&gt;
 # directory, list the archive file name (i.e. the last part of the URL,&lt;br /&gt;
 # normally with a .tar.gz suffix or similar) under &#039;nested-packages&#039;.&lt;br /&gt;
 # If any archives extract to a product directory with a version suffix, list&lt;br /&gt;
 # the archive name under &#039;version-suffix-packages&#039;.&lt;br /&gt;
 [productdistros]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.distros&lt;br /&gt;
 recipe = plone.recipe.distros&lt;br /&gt;
 urls =&lt;br /&gt;
 nested-packages =&lt;br /&gt;
 version-suffix-packages =&lt;br /&gt;
 &lt;br /&gt;
 [instance]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/plone.recipe.zope2instance&lt;br /&gt;
 recipe = plone.recipe.zope2instance&lt;br /&gt;
 zope2-location = ${zope2:location}&lt;br /&gt;
 # ip-adress muss mit angegeben werden, da sonst der traffic nicht bei HS richtig abgerechnet werden kann.&lt;br /&gt;
 &#039;&#039;&#039;ip-address = xyz00.hostsharing.net&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;user = admin:password&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039; http-address = 12300&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;ftp-address = 12301&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wbdav-address = 12302&#039;&#039;&#039;&lt;br /&gt;
 #debug-mode = on&lt;br /&gt;
 #verbose-security = on&lt;br /&gt;
 &lt;br /&gt;
 # If you want Zope to know about any additional eggs, list them here.&lt;br /&gt;
 # This should include any development eggs you listed in develop-eggs above,&lt;br /&gt;
 # e.g. eggs = Plone my.package&lt;br /&gt;
 eggs =&lt;br /&gt;
    Plone&lt;br /&gt;
    ${buildout:eggs}&lt;br /&gt;
     &lt;br /&gt;
  &lt;br /&gt;
 # If you want to register ZCML slugs for any packages, list them here.&lt;br /&gt;
 # e.g. zcml = my.package my.other.package&lt;br /&gt;
 zcml =&lt;br /&gt;
 &lt;br /&gt;
 products =&lt;br /&gt;
    ${buildout:directory}/products&lt;br /&gt;
    ${productdistros:location}&lt;br /&gt;
 &lt;br /&gt;
 [zopepy]&lt;br /&gt;
 # For more information on this step and configuration options see:&lt;br /&gt;
 # http://pypi.python.org/pypi/zc.recipe.egg&lt;br /&gt;
 recipe = zc.recipe.egg&lt;br /&gt;
 eggs = ${instance:eggs}&lt;br /&gt;
 interpreter = zopepy&lt;br /&gt;
 extra-paths = ${zope2:location}/lib/python&lt;br /&gt;
 scripts = zopepy&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Der angegebene Benutzer wird mit dem zugewiesenen Kennwort beim ersten Start der Zope-Instanz angelegt. Es empfiehlt sich aus Sicherheitsgründen, dass Kennwort nach dem ersten Start der Zope-Instanz aus der Konfigurationsdatei zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Nach der Anpassung der Konfigurationsdatei buildout.cfg muss die Installation durch den Aufruf von buildout aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~/plone3.1$ bin/buildout&lt;br /&gt;
&lt;br /&gt;
=== Installation zusätzlicher Softwarepakete ===&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Softwarepakete in egg-Form können in das Verzeichnis &amp;quot;src&amp;quot; installiert und im Abschnitt &amp;quot;[buildout]&amp;quot; der &amp;quot;buildout.cfg&amp;quot; unter &amp;quot;eggs&amp;quot; und &amp;quot;develop&amp;quot; eingetragen werden. Zusätzliche Softwarepakete in &amp;quot;Product&amp;quot;-Form können in den Abschnitt &amp;quot;[productdistros]&amp;quot; eingetragen oder in der Verzeichnis &amp;quot;products&amp;quot; installiert werden. Dies gilt gleichermaßen für Eigenentwicklungen wie Softwarepakete von Drittanbietern.&lt;br /&gt;
Starten und Stoppen der Instanz&lt;br /&gt;
&lt;br /&gt;
=== Zope Instanz starten/stoppen ===&lt;br /&gt;
&lt;br /&gt;
Die Zope Instanz kann über von buildout erzeugte Skripte gestartet oder gestoppt werden.&lt;br /&gt;
Die Zope Instanz kann mehrer &amp;quot;Plone Sites&amp;quot; verwalten, so dass für jede weitere dom nur eine &amp;quot;Plone_ Site mit entsprechenden namen erstellt wird und die dazugehörige .htaccess erstellt werden muss.&lt;br /&gt;
&lt;br /&gt;
 Start&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ bin/instance start&lt;br /&gt;
&lt;br /&gt;
 Stop&lt;br /&gt;
 xyz00-plone@h99:~/plone3.2$ bin/instance stop&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Plone Site ===&lt;br /&gt;
&lt;br /&gt;
Eine laufende Instanz kann jederzeit über http://www.example.com:12300/ mit dem Webbrowser direkt angesprochen werden. Dabei ist der jeweilige Paketname und der zugewiesene Port für HTTP zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://xyz00.hostsharing.net:12300/manage aufgerufen und nach dem Login mit den vergebenen Zugangsdaten aus der Drop Down-Liste &amp;quot;Plone Site&amp;quot; ausgewählt und per &amp;quot;Add&amp;quot; hinzugefügt. Die Plone Site sollte plone_site_example_com genannt werden.&lt;br /&gt;
&lt;br /&gt;
Die laufende Plone Site kann anschließend über http://www.example.com:12300/plone_site mit Webbrowser angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von Apache ===&lt;br /&gt;
&lt;br /&gt;
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.&lt;br /&gt;
&lt;br /&gt;
 xyz00-plone@h99:~$ nano ~/doms/example.com/subs/www/.htaccess&lt;br /&gt;
 &lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^80$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/http/www.example.com:80/plone_site_example_com/VirtualHostRoot/${escape:$1} [P,L]&lt;br /&gt;
 RewriteCond %{SERVER_PORT} ^443$&lt;br /&gt;
 RewriteRule ^(.*) http://xyz00.hostsharing.net:12300/VirtualHostBase/https/www.example.com:443/plone_site_example_com/VirtualHostRoot/${escape:$1} [P,L]&lt;br /&gt;
	&lt;br /&gt;
== WEBDAV ==&lt;br /&gt;
Um den webdav client zu aktivieren muss man in der zope.conf (die Datei ist in ~/plone3.2/parts/ folgendes hizufügen&lt;br /&gt;
&lt;br /&gt;
 [zope.conf]&lt;br /&gt;
 [...]&lt;br /&gt;
 &amp;lt;webdav-source-server&amp;gt;&lt;br /&gt;
    # valid keys are &amp;quot;address&amp;quot; and &amp;quot;force-connection-close&amp;quot;&lt;br /&gt;
    address  www.example.com1980&lt;br /&gt;
    force-connection-close off&lt;br /&gt;
 &amp;lt;/webdav-source-server&amp;gt;&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Dieses aktiviert den webdav server unter &#039;http://www.example.com:1980/&#039;&lt;br /&gt;
&lt;br /&gt;
Um unter Windows das plone root directory mappen zu können, ist es am Einfachsten die Freeware &amp;quot;netdrive&amp;quot; herunter zuladen und zu benutzen.&lt;br /&gt;
Die interne Windows lösung  birgt Schwierigkeiten und ist nicht zu empfehlen siehe http://en.wikipedia.org/wiki/WebDAV&lt;br /&gt;
&lt;br /&gt;
== automatisches Packen der ZopeDB ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:30210/Control_Panel/Database/main/manage_pack --post-data=&amp;quot;days3Afloat=7&amp;amp;submit=Pack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== automatisches Starten nach Server-Reboot ==&lt;br /&gt;
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein:&lt;br /&gt;
&lt;br /&gt;
 @reboot /home/pacs/xyz00/users/doms/plone/bin/instance start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:Django_installieren&amp;diff=2914</id>
		<title>Diskussion:Django installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:Django_installieren&amp;diff=2914"/>
		<updated>2011-04-22T12:48:12Z</updated>

		<summary type="html">&lt;p&gt;Pro01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Autor schrieb &amp;quot;habe eine Anleitung ins Wiki gepackt. Ist noch als Baustelle gekennzeichnet, bis ich ein OK habe das es funktioniert.&amp;quot; Wer verifiziert, dass die Anleitung so richtig ist, möge also das &amp;quot;Baustelle&amp;quot; entfernen. --[[Benutzer:Deg00-m.website|ChristofT]] 07:56, 26. Feb. 2011 (CET)&lt;br /&gt;
&lt;br /&gt;
Hallo, habe parallel eine für mich funktionierende &amp;quot;WSGI über FLUP&amp;quot;-Anleitung eingestellt. Mit den Pfaden bin ich mir nicht ganz sicher. Bei mir läuft es so.&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Django_installieren&amp;diff=2913</id>
		<title>Django installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Django_installieren&amp;diff=2913"/>
		<updated>2011-04-22T12:45:49Z</updated>

		<summary type="html">&lt;p&gt;Pro01: /* Nutzung mit WSGI via flup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
===Installation Djangobibliothek===&lt;br /&gt;
Die Djangobibliotheken werden in einer Virtualenv-Umgebung installiert.&lt;br /&gt;
Zun&amp;amp;auml;chst wird die Virtualenvumgebung erstellt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00-doms:~$ virtualenv djangoenv&lt;br /&gt;
New python executable in djangoenv/bin/python&lt;br /&gt;
Installing setuptools............done.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dann werden die Django-Bibliotheken in die eben erstellte Virtualenvumgebung installiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ djangoenv/bin/easy_install django&lt;br /&gt;
Searching for django&lt;br /&gt;
Reading http://pypi.python.org/simple/django/&lt;br /&gt;
Reading http://www.djangoproject.com/&lt;br /&gt;
Best match: Django 1.3&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Finished processing dependencies for django&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Testen, ob Django installiert ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ djangoenv/bin/python&lt;br /&gt;
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) &lt;br /&gt;
[GCC 4.4.5] on linux2&lt;br /&gt;
Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import django&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Django-Projekt===&lt;br /&gt;
Dann wird das Django Projekt im Bereich einer Domain abgelegt. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz-doms:~$ cd ~/doms/example.com/&lt;br /&gt;
xyz-doms:~$ /path_to_djangoenv/djangoenv/bin/django-admin.py startproject djangoprojekt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt kann man unter Verwendung des Pythons der Virtualenv testen, ob Django läuft.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xyz00: /path_to_djangoenv/djangoenv/bin/python manage.py runserver &lt;br /&gt;
Validating models...&lt;br /&gt;
&lt;br /&gt;
0 errors found&lt;br /&gt;
Django version 1.3, using settings &#039;mysite.settings&#039;&lt;br /&gt;
Development server is running at http://127.0.0.1:8000/&lt;br /&gt;
Quit the server with CONTROL-C.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... und die &#039;&#039;settings.py&#039;&#039; an die Hostsharing-Pfade angepasst.&lt;br /&gt;
&lt;br /&gt;
===Nutzung mit FastCGI===&lt;br /&gt;
Zunächst richtet man den FastCGI-Skript (django.fcgi) ein und legt es im fastcgi-Verzeichnis ab und macht es ausführbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/path_to_djangoenv/djangoenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import os, sys&lt;br /&gt;
os.chdir(&amp;quot;/path_to_doms/doms/example.com/&amp;quot;)&lt;br /&gt;
os.environ[&#039;DJANGO_SETTINGS_MODULE&#039;]= &amp;quot;djangoprojekt.settings&amp;quot;&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/&amp;quot;)&lt;br /&gt;
from django.core.servers.fastcgi import runfastcgi&lt;br /&gt;
runfastcgi(method=&amp;quot;threaded&amp;quot;, daemonize=&amp;quot;false&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Djangoprojekt sollte jetzt unter example.com/fastcgi-bin/django.fcgi erreichbar sein.&lt;br /&gt;
&lt;br /&gt;
===Nutzung mit WSGI via flup===&lt;br /&gt;
Zunächst richtet man den FastCGI-Skript (django.fcgi) ein und legt es im fastcgi-Verzeichnis ab und macht es ausführbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/path_to_djangoenv/djangoenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import os, sys&lt;br /&gt;
os.chdir(&amp;quot;/path_to_doms/doms/example.com/django&amp;quot;)&lt;br /&gt;
os.environ[&#039;DJANGO_SETTINGS_MODULE&#039;]= &amp;quot;djangoprojekt.settings&amp;quot;&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/django&amp;quot;)&lt;br /&gt;
sys.path.insert(0, &amp;quot;/path_to_doms/doms/example.com/django/djangoprojekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
from flup.server.fcgi import WSGIServer&lt;br /&gt;
from django.core.handlers.wsgi import WSGIHandler&lt;br /&gt;
WSGIServer(WSGIHandler()).run()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Djangoprojekt sollte jetzt unter example.com/fastcgi-bin/django.fcgi erreichbar sein.&lt;br /&gt;
Tipp: Manchmal werden Änderungen in den Quellen, insbesondere der settings.py nicht übernommen. Dann hilft es den Zeitstempel der Datei django.fcgi mit touch zu aktualisieren.&lt;br /&gt;
&lt;br /&gt;
===Apache Weiterleitung===&lt;br /&gt;
Nun wird das Djangoprojekt unter www.example.com verf&amp;amp;uuml;gbar gemacht.&lt;br /&gt;
Hierf&amp;amp;uuml;r wird eine .htaccess im entsprechenden Domainverzeichnis angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ /fastcgi-bin/django.fcgi/$1 [QSA,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nun sollte die Seite unter (www.)example.com erreichbar sein.&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Pro01</name></author>
	</entry>
</feed>