(1)购买证书
可以在阿里云、腾讯云、或者宝塔上使用免费的SSL证书。
阿里云免费证书:
腾讯云免费证书:
宝塔linux免费证书:
(2)在宝塔上部署SSL证书
下载证书文件,然后在宝塔中打开站点配置,选择SSL中的其他证书。
最后效果:
(3)站点配置文件中设置(针对magento框架)
打开宝塔的网站的站点配置文件,如果http和https访问分开配置,则代码如下:
[强制https开启,因为https开启才能浏览器显示安全]
下面操作步骤在上线配置nginx操作之后,需进行之前的操作。
注意就是先配置好SSL证书,强制开启https,则会自动生成一些htpps重定向 和 ssl开头的代码在配置文件中。
然后把原来的server复制一份放下面,上面的作为http用,下面的作为https用。
上面的只保留listen 80端口。ssl配置代码段都需要注释掉。
下面的只保留listen 443 ssl http2,需要注释掉https重定向代码,ssl配置代码段保留。
upstream fastcgi_backend {
# # use tcp connection
# # server 127.0.0.1:9000;
# # or socket
server unix:/tmp/php-cgi-71.sock;
}
# HTTP
server
{
listen 80;
#listen 443 ssl http2;
server_name www.freetooshop.com;
index index.php index.html index.htm default.php default.htm default.html;
#root /website/store;
set $MAGE_ROOT /website/store;
#设置强制https访问
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#ssl_certificate /www/server/panel/vhost/cert/www.freetooshop.com/fullchain.pem;
#ssl_certificate_key /www/server/panel/vhost/cert/www.freetooshop.com/privkey.pem;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
#ssl_prefer_server_ciphers on;
#ssl_session_cache shared:SSL:10m;
#ssl_session_timeout 10m;
#error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-71.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/www.freetooshop.com.conf;
#REWRITE-END
include /website/store/nginx.conf.sample;
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
access_log /www/wwwlogs/www.freetooshop.com.log;
error_log /www/wwwlogs/www.freetooshop.com.error.log;
}
# HTTPS
server{
listen 443 ssl http2;
server_name www.freetooshop.com;
index index.php index.html index.htm default.php default.htm default.html;
#root /website/store;
set $MAGE_ROOT /website/store;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /www/server/panel/vhost/cert/www.freetooshop.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/www.freetooshop.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-71.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/www.freetooshop.com.conf;
#REWRITE-END
include /website/store/nginx.conf.sample;
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
access_log /www/wwwlogs/www.freetooshop.com.log;
error_log /www/wwwlogs/www.freetooshop.com.error.log;
}
(4)magento框架后台设置是否启用https应用到网站前后台
后台设置地方截图如下:
后台打开路径:store---configuration---general---web
配置完重新部署下文件,清除浏览器缓存再访问网站!!!
----------------------------------------------------------------------------------------
其他备注点:
这两处对应数据库的字段为:
core_config_data表中的path字段为
web/secure/use_in_frontend (前台,0关闭 1启用)
web/secure/use_in_adminhtml (后台,0关闭 1启用)