tips:httpslogin
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tips:httpslogin [2014-07-17 11:19] – 118.208.247.16 | tips:httpslogin [2018-09-29 11:31] (current) – [Apache] added example of a simple rule for https for all pages bruno.genere | ||
---|---|---|---|
Line 5: | Line 5: | ||
See https:// | See https:// | ||
=====Apache===== | =====Apache===== | ||
- | Using Apache' | + | Using Apache' |
- | You may want to read up on [[:rewrite|general | + | You may also need that all requests (and not only login) use HTTPS. To do so, create an .htaccess file in the root directory of DokuWiki and insert the following code. |
+ | <code apache .htaccess> | ||
+ | RewriteCond %{HTTPS} !on | ||
+ | RewriteRule (.*) https:// | ||
+ | </ | ||
+ | |||
+ | If you only want to force some specific URL, read up [[:rewrite|URL rewriting]] first. | ||
Redirection to a secured connection which is restricted to a certain set of pages (e.g. login pages) requires their recognition based on the URL. Some pages (e.g. " | Redirection to a secured connection which is restricted to a certain set of pages (e.g. login pages) requires their recognition based on the URL. Some pages (e.g. " | ||
- | FIXME The rest of the paragraph only handles requests with a ''? | + | FIXME The rest of the paragraph only handles requests with a ''? |
+ | See discussion for solution. | ||
The following assumes you already set up HTTPS support for your wiki, making it available via HTTP and HTTPS on the same address. For performance reasons only the login and profile updates should be forced to HTTPS while all " | The following assumes you already set up HTTPS support for your wiki, making it available via HTTP and HTTPS on the same address. For performance reasons only the login and profile updates should be forced to HTTPS while all " | ||
Line 93: | Line 100: | ||
Like with apache, you need to disable [[# | Like with apache, you need to disable [[# | ||
+ | |||
+ | |||
+ | ===== php Based HTTPS ===== | ||
+ | Below is useful if you wish to force https connection ALWAYS (not just for login), and wish not to rely on Apache or NGINX htaccess or other server specific directives. | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | if ($_SERVER[HTTPS]!=" | ||
+ | // | ||
+ | // The function ' | ||
+ | // So, try to don't use getenv(' | ||
+ | $strURIName= $_SERVER[' | ||
+ | header (" | ||
+ | // If it doesn' | ||
+ | // uncomment below to find out about your particular server variables | ||
+ | /* | ||
+ | echo "< | ||
+ | reset($_SERVER); | ||
+ | while (list ($key, $val) = each ($_SERVER)) { | ||
+ | print $key . " = " . $val . "< | ||
+ | } | ||
+ | */ | ||
+ | } | ||
+ | |||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Thanks.. That saved my day! | ||
+ | |||
+ | |||
+ | |||
===== Discussion ===== | ===== Discussion ===== | ||
Line 104: | Line 142: | ||
I have created the solution to the “access denied” pages that enables rewrite rules to redirect the user to an SSL login page. | I have created the solution to the “access denied” pages that enables rewrite rules to redirect the user to an SSL login page. | ||
This fix was an edit to the source code that redirects the user to the same page with the ‘do=login’ query string this enables the rewrite rules to take effect and redirect to an SSL login page, once the user logs in they will be presented with the page they tried to access. This fix is on my websites [[http:// | This fix was an edit to the source code that redirects the user to the same page with the ‘do=login’ query string this enables the rewrite rules to take effect and redirect to an SSL login page, once the user logs in they will be presented with the page they tried to access. This fix is on my websites [[http:// | ||
+ | |||
+ | ==== 25 Nov 15 - wrong protocol service or infinite loop ==== | ||
+ | |||
+ | I try to CASsify my **Dokuwiki** with **phpCAS**. My CAS server does not allow http services (which I could change but it is not my purpose).\\ | ||
+ | So I did install the plugin authplaincas with success and the phpCAS lib too. Evrything is OK except one thing : '' | ||
+ | https:// | ||
+ | First I was thinking **phpCAS** was the problem then it was **Dokuwiki** and then again **phpCAS** but now I think it is **DokuWiki** which report the wrong protocol service. | ||
+ | I tried different solution like rewrite engine into '' | ||
+ | For more information, | ||
+ | I think the problem is HTTPS protocol information is not transmit to my backend which host my DokuWiki or when I get infinite loop I think my cookie is not preserve. | ||
+ | How can I fix it or debug it ? Help will be very appreciate. | ||
+ | |||
+ | Regards,\\ | ||
+ | Guy CARRÉ\\ | ||
+ | | ||
+ | |||
+ | **EDIT** | ||
+ | I found what it was wrong and I post it here : | ||
+ | https:// | ||
+ | |||
+ | Good night ;-) | ||
+ | |||
+ | ==== 30 Nov 15 - do ==== | ||
+ | Over HTTP, not logged on a inexistent page if you try to view source(do=edit), | ||
+ | I suggest to switch to https on " | ||
+ | Also, I'm not sure that this configuration really **needs** secure cookie disabled, it needs it **enabled** to me. Actually, steal a cookie is as easy as steal a cleartext password. Ok, it doesn' | ||
+ | Switching back to http, you loose session : abilities to edit, config etc, what's wrong with this? Doing such an action puts you back to https, the cookie is send and you retrieve your session. Maybe some other actions need to switch to https then like media things, etc, I don't know.\\ | ||
+ | These are just suggestions, | ||
+ | |||
+ | ==== 16 Feb 2016 - Use TLS all the time ==== | ||
+ | |||
+ | We should amend this tip to recommend using TLS for all connections. | ||
+ | < | ||
+ | |||
+ | One step further would be to strongly recommend that TLS be configured by default. | ||
tips/httpslogin.1405588765.txt.gz · Last modified: 2014-07-17 11:19 by 118.208.247.16 · Currently locked by: 69.172.232.4