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
