magento 2.3 nginx 如何配置https
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