Add information about DH param compatibility
[ach-master.git] / src / practical_settings / webserver.tex
index b1c7a44..d39de0c 100644 (file)
@@ -52,14 +52,14 @@ Starting with lighttpd version 1.4.29 Diffie-Hellman and Elliptic-Curve Diffie-H
 By default, elliptic curve "prime256v1" (also "secp256r1") will be used, if no other is given.
 To select special curves, it is possible to set them using the configuration options \verb|ssl.dh-file| and \verb|ssl.ec-curve|.
 
-\configfile{10-ssl-dh.conf}{11-12}{SSL EC/DH configuration for lighttpd}
+\configfile{10-ssl-dh.conf}{11-13}{SSL EC/DH configuration for lighttpd}
 
 Please read section \ref{section:DH} for more information on Diffie Hellman key exchange and elliptic curves.
 
 \subsubsection{Additional settings}
 As for any other webserver, you might want to automatically redirect \emph{http://}
 traffic toward \emph{https://}. It is also recommended to set the environment variable
-\emph{HTTPS}, so the PHP applications run by the webserver can easily detect,
+\emph{HTTPS}, so the PHP applications run by the webserver can easily detect
 that HTTPS is in use.
 
 \configfile{11-hsts.conf}{}{https auto-redirect configuration}
@@ -135,7 +135,7 @@ See appendix \ref{cha:tools}
 
 To configure SSL/TLS on Windows Server IIS Crypto can be used.~\footnote{\url{https://www.nartac.com/Products/IISCrypto/}}
 Simply start the Programm, no installation required. The tool changes the registry keys described below.
-A restart ist required for the changes to take effect.
+A restart is required for the changes to take effect.
 
 \begin{figure}[p]
   \centering
@@ -148,7 +148,7 @@ Instead of using the IIS Crypto Tool the configuration can be set
 using the Windows Registry. The following Registry keys apply to the
 newer Versions of Windows (Windows 7, Windows Server 2008, Windows
 Server 2008 R2, Windows Server 2012 and Windows Server 2012 R2). For detailed
-information about the older versions see the Microsoft knowlagebase
+information about the older versions see the Microsoft knowledgebase
 article. \footnote{\url{http://support.microsoft.com/kb/245030/en-us}}
 \begin{lstlisting}[breaklines]
   [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel] 
@@ -180,13 +180,12 @@ article. \footnote{\url{http://support.microsoft.com/kb/245030/en-us}}
 
 
 \subsubsection{Settings}
-When trying to avoid RC4 and CBC (BEAST-Attack) and requiring perfect
-forward secrecy, Microsoft Internet Information Server (IIS) supports
-ECDSA, but does not support RSA for key exchange (consider ECC suite
+When trying to avoid RC4 (RC4 biases) as well as CBC (BEAST-Attack) by using GCM and to support perfect
+forward secrecy, Microsoft SChannel (SSL/TLS, Auth,.. Stack) supports
+ECDSA but lacks support for RSA signatures (see ECC suite
 B doubts\footnote{\url{http://safecurves.cr.yp.to/rigid.html}}).
 
-Since \verb|ECDHE_RSA_*| is not supported, a SSL certificate based on
-elliptic curves needs to be used.
+Since one is stuck with ECDSA, an elliptic curve certificate needs to be used.
 
 The configuration of cipher suites MS IIS will use, can be configured in one
 of the following ways:
@@ -203,7 +202,7 @@ one algorithm after another and the effect on the supported clients
 tested using https://www.ssllabs.com.
 
 \verb|SSL 3.0|, \verb|SSL 2.0| and \verb|MD5| are turned off.
-\verb|TLS 1.0| and \verb|TLS 2.0| are turned on.
+\verb|TLS 1.0| and \verb|TLS 1.2| are turned on.
 
 \ctable[%
 caption={Client support},
@@ -243,7 +242,7 @@ Clients not supported:
 %Here you can add additional settings
 It's recommended to use Strict-Transport-Security: max-age=15768000 
 for detailed information visit the
-\footnote{\url{http://www.iis.net/configreference/system.webserver/httpprotocol/customheaders#005}}
+\footnote{\url{http://www.iis.net/configreference/system.webserver/httpprotocol/customheaders}}
 Microsoft knowledgebase.
 
 You might want to redirect everything to http\textbf{s}:// if possible. In IIS you can do this with the following setting by Powershell:
@@ -271,52 +270,6 @@ Set-WebConfiguration -Location "$WebSiteName/$WebApplicationName" `
 See appendix \ref{cha:tools}
 
 %%---------------------------------------------------------------------- 
-\subsection{Supporting older clients}
-% hack.
-\gdef\currentsectionname{Webservers-legacy}
-
-Older clients like Internet Explorer on Windows XP (actually the Windows XP
-crypto stack), Java 6 and Java 7 aren't supported by the recommended Variant B
-cipher string.
-To catch most of those old clients you might use their inability to understand
-SNI to create a catchall page with a default SSL server. On the default page
-you should provide information about upgrading their browser to the user.
-This will not work with Java 7 because Java 7 understands SNI.
-
-\subsubsection{Apache}
-% hack.
-\gdef\currentsubsectionname{Apache}
-
-Create a default SSL server:
-
-\configfile{ports.conf}{12-13}{SNI for SSL on Apache}
-\configfile{000-default-ssl}{2-14}{SNI catchall on Apache}
-
-The catchall virtual server needs to be the first server in the config.
-You also should not use snakeoil certificates (as in the snipplet above)
-but the very same certificate as you use for the real service. In case you
-provide several virtual servers via SNI, the certificate for the catchall page
-needs to include all their names.
-
-\subsubsection{lighttpd}
-% hack.
-\gdef\currentsubsectionname{lighttpd}
-
-\todo{someone needs to write that section or we just omit it}
-
-\subsubsection{nginx}
-% hack.
-\gdef\currentsubsectionname{nginx}
-
-Create a default SSL server:
-\configfile{default}{125-139}{SNI catchall on nginx}
-
-The real service then needs to be in its own server definition omitting the
-\texttt{default} keyword in the \texttt{listen} directive.
-You should not use snakeoil certificates (as in the snipplet above) but the
-very same certificate as you use for the real service. In case you provide
-several virtual servers via SNI, the certificate for the catchall page needs
-to include all their names.
 
 %%% Local Variables: 
 %%% mode: latex