bjwindy 发表于 2017-12-4 18:04:22

多个域名配置ssl,配置文件怎么设置

服务器信息:centos7.4   64位   php7.1.2   

单个域名增加SSL已经搞定,实现了http://访问时自动跳转到https://,这样做的目的是无论用户是手动输入域名访问网站,默认都是http://,还是使用https://访问都保证网站可以打开,由于服务器上有多个网站使用了微信支付接口,而微信公众平台从2018年1月1日起,接口要求使用https://才能调用,所以不得不把网站改https://了。
单个网站搞定了,但多个域名配置SSL的时候就只有第一个配置的网站可以使用,其它的则用不了,麻烦军哥帮我看一下nginx的配置文件该怎么改,现在把单个网站配置SSL域名后自动跳转到https://的网站配置文件代码粘贴出来方便有http://跳转到https://需求的朋友解决跳转问题。

以下是需要增加到nginx.conf文件中的代码,直接放在nginx.conf最下面就可以,据说ssl on已经废除了,大家可以试一下。
server {
    listen 443;
    server_name www.lnmp.org;
    ssl on;
    root/www/wwwroot/default;
    index index.html index.htm;
    ssl_certificate   /usr/local/nginx/conf/cert/214306099660183.pem;
    ssl_certificate_key/usr/local/nginx/conf/cert/214306099660183.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location ~ [^/]\.php(/|$)

{

# comment try_files $uri =404; to enable pathinfo

try_files $uri =404;

fastcgi_passunix:/tmp/php-cgi.sock;

fastcgi_index index.php;

include fastcgi.conf;

#include pathinfo.conf;

}


location /nginx_status {

stub_status on;

access_log   off;

}


location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires      30d;

}


location ~ .*\.(js|css)?$

{

expires      12h;

}
            access_log/www/wwwlogs/access.logaccess;
       }

include vhost/*.conf;
}


这下面的内容是vhost文件夹中网站配置文件的部分

server

{

listen 80;

#listen [::]:80;

server_name www.abc.com abc.com;

index index.html index.htm index.php default.html default.htm default.php;

root/www/wwwroot/abc.com;
                return301 https://$server_name$request_uri;

include ht.conf;

#error_page   404   /404.html;

location ~ [^/]\.php(/|$)

{

# comment try_files $uri =404; to enable pathinfo

try_files $uri =404;

fastcgi_passunix:/tmp/php-cgi.sock;

fastcgi_index index.php;

include fastcgi.conf;

#include pathinfo.conf;

}


location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires      30d;

}


location ~ .*\.(js|css)?$

{

expires      12h;

}


access_log off;

}

server {
      listen 443;
      server_name abc.com www.abc.com;

      root/www/wwwroot/abc.com;
      index index.html index.htm index.php;

      ssl on;
      ssl_certificate   /usr/local/nginx/conf/cert/214306099660183.pem;
      ssl_certificate_key/usr/local/nginx/conf/cert/214306099660183.key;

      include ht.conf;

#error_page   404   /404.html;

location ~ [^/]\.php(/|$)

{

# comment try_files $uri =404; to enable pathinfo

try_files $uri =404;

fastcgi_passunix:/tmp/php-cgi.sock;

fastcgi_index index.php;

include fastcgi.conf;

#include pathinfo.conf;

}


location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires      30d;

}


location ~ .*\.(js|css)?$

{

expires      12h;

}


access_log off;

}


单个网站这样配置应该是没问题的,但多个域名都要配置SSL,就不知道nginx.conf要怎么设置了,还往军哥多多指教,网上看了很多说法有点懵,虽然用了四年lnmp了,从1.1用到1.4,但还是小白一个,:loveliness:

[ 本帖最后由 bjwindy 于 2017-12-4 18:11 编辑 ]

licess 发表于 2017-12-5 11:34:36

ssl不是只写上个ssl on和证书key就行,不会的话可以直接 lnmp vhost add 或 lnmp ssl add 进行添加,具体查看官网教程 https://lnmp.org/faq/lnmp-vhost-add-howto.html
如何设置301 lnmp官网上 https://lnmp.org 也都有
页: [1]
查看完整版本: 多个域名配置ssl,配置文件怎么设置