nginx配置多个https

之前写过一篇关于apache的多https配置文章,你可以点这里查看。

今天来说一个关于nginx的多https虚拟主机的配置,配置文件非常简单和这里的http配置差不多的,我就以这篇文章作为基础来搭建基于nginx的多https虚拟主机。

关于怎么生成证书请看这里或者可以在线生成ssl的csr在这里

为了不浪费大家的阅读时间,我就直接将我的配置文件贴上来给大家参考《i.markdream.conf》

#301跳转  将80请求全部转发到https
server {
        listen       80;
        server_name  i.markdream.com;

        location / {
            rewrite (.*) https://i.markdream.com$1 permanent;
        }
}

server {
        listen       443 ssl;
        server_name  i.markdream.com;

        root /home/vhost/i.markdream.com;

        ssl on;
		#这是你的证书目录
        ssl_certificate /usr/loacl/nginx/ssl-crt/i.markdream.crt;
		#这是你的证书key目录
        ssl_certificate_key /usr/loacl/nginx/ssl-crt/i.markdream.key;

        location / {
            index  index.html index.htm index.php;
        }

		#anythings for you...
}

重要的我已经在配置文件中详细注明了,请注意按照你的实际需要进行配置就能找到你的证书了。效果就是不管使用N个https每个域名都能找到它所对应的ssl证书(也就是实现单台IP实现对应多证书的要求),好请观看令人愉悦的demo。

 

demo演示1:https://i.markdream.com

demo演示2:https://svn.markdream.com

2015年05月08日更新

有时候我们可能既需要http能访问,https也能访问,那么我们可以这么配置conf文件

server {
        listen 80;
        listen 443 ssl;
        server_name  api.markdream.com;

        ssl_certificate /path/to/ssl/api.crt;
        ssl_certificate_key /path/to/ssl/api.key;

        root /path/to/api;
}

demo演示3:HTTP:http://api.markdream.com/jquery.min.js  HTTPS:https://api.markdream.com/jquery.min.js

好了,你现在可以实际操作下。

 

 

作者:Yinchiang

i'm X

5条评论

  1. 你试一下IE6,IE6这样访问是有问题的,提示有一个域名的证书不对,这个问题困扰我很久了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

评论审核已启用。您的评论可能需要一段时间后才能被显示。