2017-07-30 29 views
0

私は私のドメインmemorisemedicine.com上のNginxサーバーでLetsEncryptを使用しています。NGINX httpをhttpsにリダイレクト

SSL以外のトラフィックをSSL(https)にリダイレクトすると思われる/ etc/nginx/sites-availableにあるこの 'memorize-frontend.conf'ファイルの最後にサーバーブロックを追加しました。

これで、https://を使わずにサイトにアクセスすると、正しくリダイレ​​クトされていることがあります。しかし、特にFirefoxでこれは私のために働いていない&私は決して可能でありたい、このドメイン上のhttp://ページにアクセスすることができます。誰でも私の.confファイルの何が間違っているかを知っていますか?私は同様にnginx.confファイルを編集しようとしましたが、サーバブロックをうまく利用していないようです。

server { 
charset utf-8; 
client_max_body_size 128M; 

listen 80; ## listen for ipv4 
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6 



server_name memorisemedicine.com www.memorisemedicine.com; 


root  /srv/memorise/frontend/web; 
index  index.php; 



# access_log /path/to/basic/log/access.log; 
# error_log /path/to/basic/log/error.log; 

location/{ 
    # Redirect everything that isn't a real file to index.php 
    try_files $uri $uri/ /index.php$is_args$args; 
} 

# uncomment to avoid processing of calls to non-existing static files by Yii 
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { 
# try_files $uri =404; 
#} 
#error_page 404 /404.html; 

# deny accessing php files for the /assets directory 
location ~ ^/assets/.*\.php$ { 
    deny all; 
} 

location ~ \.php$ { 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    #fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    try_files $uri =404; 
} 

location ~* /\. { 
    deny all; 
} 

listen 443 ssl; # managed by Certbot 
ssl_certificate /etc/letsencrypt/live/memorisemedicine.com/fullchain.pem; # man$ 
ssl_certificate_key /etc/letsencrypt/live/memorisemedicine.com/privkey.pem; # m$ 
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot 

} 

server { 
return 301 https://memorisemedicine.com$request_uri; 
} 
+0

あなたのメインサーバブロックはポート80と443でリッスンしています。あなたは 'listen 80'を他のサーバブロックに移動する必要があります。 –

+0

ちょっとリチャード、助けてくれてありがとう。あなたは正しいのですが、私は443で使用されている「聴く」という2つのインスタンスを見つけました。これらのサーバーブロックは、必要でないので削除しました。私はまだサイトのSSLバージョンにリダイレクトされていないようです。 –

+0

私はあなたが何を意味しているか知っていると思います - 私は 'listen 80;'という行を 'server { listen 80; return 301 https://memorisemedicine.com$request_uri; } 'それはまだリダイレクトしていません。私の通常のhttpトラフィックはすべて80から入ってくるはずです –

答えて

0

nginxの設定では、sslのポート443をリッスンするサーバー部分は表示されません。 あなたがあなた自身の必要性にそれを編集できるように私は私の設定を追加します:

server { 
    listen 80; 
    listen [::]:80; 

    return 301 https://$server_name$request_uri; 

    access_log /var/log/nginx/api.example.com-access.log timed; 
    error_log /var/log/nginx/api.example.com-error.log; 

    root /var/www/example/html/public; 

    server_name api.example.com; 

    location/{ 
     index index.html index.php; 
     try_files $uri $uri/ @php; 
    } 

    location ~ \.php$ { 
     fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
     fastcgi_param SCRIPT_FILENAME /var/www/example/html/public/index.php; 
     include fastcgi_params; 
    } 

    location ~ /.well-known { 
       allow all; 
     } 

} 

server { 
    listen 443 ssl; 
    listen [::]:443 ssl; 

    access_log /var/log/nginx/api.example.com-access.log timed; 
    error_log /var/log/nginx/api.example.com-error.log; 

    root /var/www/example/html/public; 

    server_name api.example.com; 

    include snippets/ssl-api.example.com.conf; 
    include snippets/ssl-params.conf; 

    location/{ 
     index index.html index.php; 
     try_files $uri $uri/ /index.php?q=$uri&$args; 
    } 

    location ~ \.php$ { 
     fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
     fastcgi_param SCRIPT_FILENAME /var/www/example/html/public/index.php; 
     include fastcgi_params; 
    } 

    location ~ /.well-known { 
       allow all; 
     } 

} 

私はスニペット/ SSL-api.example.com.confが含まれます。 フルチェーンおよびプライベートcertbotを含みます。

関連する問題