magento 2.3 nginx 如何配置https

3.87K 浏览教程资料

magento 2.3 nginx 如何配置https

现在有很多免费的https,基本上90%上线的网站都用了https。

但是很多朋友对m2里的nginx配置https不熟悉,现在我们就来整理下。

一,准备工作

你至少需要提供如下必须用品

1, 服务器开启了443端口

2,域名一个,已解析到服务器ip。比如 magento2.mallol.cn

3, https证书,可以去https://freessl.cn/免费申请。(证书和密钥)。下载后 放到服务器的指定位置。

比如我的是

证书 放在 /usr/local/nginx/conf/ssl/magento2.mallol.cn.crt

密钥 放在 /usr/local/nginx/conf/ssl/magento2.mallol.cn.key

二,配置nginx

假设你的项目放在 /var/www/magento2.mallol.cn下面。

打开你的网站虚拟主机vhost。

编辑修改如下:

upstream fastcgi_backend {
  server   unix:/run/php/php7.2-fpm.sock;
}
server {
  listen 80;
  listen 443 ssl http2;
  server_name magento2.mallol.cn;
  ssl_certificate /usr/local/nginx/conf/ssl/magento2.mallol.cn.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/magento2.mallol.cn.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  access_log off;
  error_log /var/log/domains/magento2.mallol.cn.error.log;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
  set $MAGE_ROOT /var/www/magento2.mallol.cn
  include /var/www/magento2.mallol.cn/nginx.conf.sample;
 }

三,将基础URL更改为https并刷新缓存

php bin/magento setup:store-config:set --use-secure=1 --use-secure-admin=1 --base-url-secure="https://www.yourdomain.com/"
php bin/magento cache:flush

四,测试

保存后,重启下nginx,就可以了。

如果m2后台打开不了,不停的重定向,那么你还需要设置下magento2

php bin/magento setup:store-config:set --use-secure=1 --use-secure-admin=1 --base-url-secure="https://magento2.mallol.cn/"
php bin/magento cache:flush

0