How to redirect all SSL traffic?
Igor Sysoev
is at rambler-co.ru
Wed Nov 11 18:00:36 MSK 2009
On Wed, Nov 11, 2009 at 09:27:22AM -0500, brianmercer wrote:
> Igor Sysoev Wrote:
> -------------------------------------------------------
> > On Mon, Nov 09, 2009 at 05:34:11PM +0700, Glen
> > Lumanau wrote:
> >
> > > So I can't use such a configuration
> > >
> > > server {
> > > listen 443;
> > > rewrite (^.*) https://www.mydomain.com$1
> > permanent; }
> > >
> > > ?
> >
> > The following configuration should work:
> >
> > server {
> > listen 192.168.1.1:443;
> > server_name mydomain.com;
> > ssl on;
> > ssl_certificate
> > /path/to/wildcard.certifcate;
> > ...
> > }
> >
> > server {
> > listen 192.168.1.1:443;
> > server_name *.mydomain.com;
> > ssl on;
> > ssl_certificate
> > /path/to/wildcard.certifcate;
> > rewrite ^
> > https://www.mydomain.com$request_uri? permanent; }
> > }
> >
> > Please note, that you should use the same wildcard
> > certifcate in both
> > servers.
> >
> > > -----Original Message-----
> > > From: owner-nginx at sysoev.ru On Behalf Of Igor
> > > Sysoev
> > > Sent: 09 Nopember 2009 17:30
> > > To: nginx at sysoev.ru
> > > Subject: Re: How to redirect all SSL traffic?
> > >
> > > On Mon, Nov 09, 2009 at 10:23:33AM +0000, Glen
> > Lumanau wrote:
> > >
> > > > My question is,
> > > >
> > > > Is that posibble to redirect all the traffic
> > to www?
> > >
> > > With the "*.mydomain.com" certificate the answer
> > is YES.
> > >
> > > >
> > > > Best Regards,
> > > >
> > > > Glen Lumanau
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Maxim Dounin
> > > > Date: Mon, 9 Nov 2009 13:17:43
> > > > To:
> > > > Subject: Re: How to redirect all SSL traffic?
> > > >
> > > > Hello!
> > > >
> > > > On Mon, Nov 09, 2009 at 08:11:23AM +0000, Glen
> > Lumanau wrote:
> > > >
> > > > > Yes I have a valid ssl for www.mydomain.com.
> > I don't have a license for
> > > mydomain.com
> > > > >
> > > > > That's why I want to redirect all traffic
> > goes to mydomain.com to
> > > www.mydomain.com
> > > >
> > > > As long as you have no valid cert for
> > mydomain.com - you can't
> > > > handle requests in this domain without
> > warnings from browsers. No
> > > > way.
> > > >
> > > > Maxim Dounin
> > > >
> > > >
> > > > >
> > > > >
> > > > > Best Regards,
> > > > >
> > > > > Glen Lumanau
> > > > >
> > > > >
> > > > > -----Original Message-----
> > > > > From: Igor Sysoev
> > > > > Date: Mon, 9 Nov 2009 10:57:18
> > > > > To:
> > > > > Subject: Re: How to redirect all SSL
> > traffic?
> > > > >
> > > > > On Mon, Nov 09, 2009 at 08:49:56AM +0700,
> > Glen Lumanau wrote:
> > > > >
> > > > > > I tried this, but still doesn't works
> > > > >
> > > > > What do you mean by "doesn't work" ? Browser
> > shows a warning about
> > > invalid
> > > > > certificate ? In this case you need two
> > certificates: for
> > > "www.domain.com"
> > > > > and "mydomain.com" and you should configure
> > servers on different IP
> > > addreses.
> > > > > Or you can use a certificate with two
> > Subject Alternate Names for
> > > > > "domain.com" and "www.domain.com". Then you
> > may use the certificate in
> > > > > both server with single IP address.
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Alex Hunsaker
> > > > > > Sent: 09 Nopember 2009 5:11
> > > > > > To: glen at lumanau.web.id
> > > > > > Cc: nginx at sysoev.ru
> > > > > > Subject: Re: How to redirect all SSL
> > traffic?
> > > > > >
> > > > > > On Sun, Nov 8, 2009 at 03:31, Glen Lumanau
> >
> > > wrote:
> > > > > >
> > > > > > [ please keep the mailing list cc'ed ]
> > > > > >
> > > > > > > Try port 80...
> > > > > >
> > > > > > >> On port 80 is sucessfull. Is there any
> > way to do that on port 443?
> > > > > >
> > > > > > Ahh ok so you want http://mydomain.com and
> > https://mydomain.com to go
> > > > > > to https://www.mydomain.com.
> > > > > >
> > > > > > Sure something like:
> > > > > > server {
> > > > > > listen 80;
> > > > > > rewrite (^.*) https://www.mydomain.com$1
> > permanent;
> > > > > > }
> > > > > >
> > > > > > # config for https://www.mydomain.com
> > > > > > server {
> > > > > > listen 443;
> > > > > > ...
> > > > > > if ($host !~ www\.mydomain\.com) {
> > > > > > rewrite ^(.*) https://www.mydomain.com$1
> > permanent;
> > > > > > }
> > > > > >
> > > > > > }
> > > > > >
> > > > >
> > > > > --
> > > > > Igor Sysoev
> > > > > http://sysoev.ru/en/
> > > > >
> > > >
> > >
> > > --
> > > Igor Sysoev
> > > http://sysoev.ru/en/
> > >
> >
> > --
> > Igor Sysoev
> > http://sysoev.ru/en/
>
> Some plain SSL certificates work with both www and non-www without being a wildcard certificate. I just learned that the $10/year PositiveSSL that I got free from domain registration at http://www.namecheap.com/learn/ssl-certificates/free-positive-ssl-certificates.asp has this feature, although they don't list it on their website.
>
> server {
> listen 443;
> server_name mydomain.com;
>
> rewrite ^ https://www.mydomain.com$request_url permanent;
>
> ssl on;
> ssl_certificate /etc/ssl/certs/mydomain.com.crt;
> ssl_certificate_key /etc/ssl/private/mydomain.com.key;
> }
>
> server {
> listen 443;
> server_name www.mydomain.com;
>
> ssl on;
> ssl_certificate /etc/ssl/certs/mydomain.com.crt;
> ssl_certificate_key /etc/ssl/private/mydomain.com.key;
>
> ...
> }
>
> Works fine with the cheapo PositiveSSL cert. It looks like some companies use the feature to upsell you to their premium cert: http://www.geocerts.com/ssl/quicksslpremium
Yes, if you have just two names, you may use such certificate.
BTW, in this case you may set it on http level:
http {
ssl_certificate /etc/ssl/certs/mydomain.com.crt;
ssl_certificate_key /etc/ssl/private/mydomain.com.key;
server {
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list