背景
Marsview
开源马上三个月,反馈良好,越来越多的小伙伴加入,参与代码贡献和产品反馈,最近有大佬给我提建议接入https
,我其实一开始有点抵触,因为当前网站既没有接入微信登录,又没有接入微信支付,同时我对服务器证书配置稍微有点外行,所以接入https
意愿不是很高。
后来思考了一下,当前开源项目如火如荼,未来如何发展都有很多的不确定性,https
按道理应该是基础能力,为了网站的安全和后期微信登录的接入,我决定尝试给Marsview
接入https
。
推荐
钢铁侠给我发了一个接入的网站:httpsok.com ,经过10分钟使用后,发现极其简单,这应该是我接触以来最简单的免费证书接入网站了(我相信还有更自动化的简单方式,但在我的认知里面,我目前只会这个,也只觉得这个是最简单的)。
由于marsview.cc
在线上运行,为了避免操作失败,给用户带来不好的体验,我新开了一个域名做尝试,可以看到网站通过https
加载并正常解析。
接入过程
登录网站
- 登录:httpsok.com/login
- 进入首页,点击免费申请
3. 配置域名
注意:该域名必须是本人名下的域名,输入完域名后,会生成主机记录和记录值,如果没有生成,说明这个域名有问题。
- 打开云厂商,配置
DNS
解析
- 无论你是百度云、阿里云还是腾讯云,找到域名管理,添加解析。
- 记录类型选择
CNAME
记录。- 复制第三步生成的主机记录,对应的粘贴主机记录文本框内。
- 复制第三步生成的记录值,对应的粘贴到记录值文本框内。
- 回到
httpsok
,点击验证域名
DNS
解析完成后,回到httpsok
,点击验证域名,此时应该能验证通过。
- 等待下发证书
下发完成后,就可以去配置证书了,证书申请这个过程还是非常简单的,基本没有任何阻碍点。
登录服务器
我是nginx
部署,所以,我就只讲解nginx
的配置。
1. 使用ssh root@106.xx.xx.xx
登录服务器。
2. 创建新域名配置
# 进入nginx配置目录
cd /etc/nginx/vhost
# vhost目录下我存放了各个二级域名的配置解析
# 直接复制一个
cp www.marsview.conf www.marsview.com.cn.conf
当前配置如下:
server {
listen 80;
server_name www.marsview.com.cn;
root /marsview/dist/editor;
index index.html;
location / {
root /marsview/dist/editor;
if ($request_filename ~* \.html?$) {
add_header Cache-Control "no-cache";
}
try_files $uri $uri/ /index.html;
}
location ^~/api {
proxy_pass http://1xx.xx.xx.xx:1000;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
root /marsview/dist/editor;
expires 7d;
}
location ~ .*\.(js|css)?$ {
root /marsview/dist/editor;
expires 7d;
}
}
3. 添加证书解析
如何修改上面的server
配置呢?如果不看文档,我也不会,但幸运的是,文档写的非常清楚,把代码都贴给我们了。直接点开文档如下: 配置文档
我们只需要复制文档上面圈起来的配置,粘贴到我们的server
下面即可。但是需要注意的是,要把里面对应的httpsok.xyz
替换成自己的域名,那我的举例子,最终变成下面这样:
server {
listen 443 ssl;
server_name marsview.com.cn;
ssl_certificate /etc/nginx/certs/marsview.com.cn.pem;
ssl_certificate_key /etc/nginx/certs/marsview.com.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000";
access_log /var/log/nginx/marsview.com.cn.https.log;
# listen 80;
# server_name www.marsview.com.cn;
}
我们只需要把listen 90
和server_name
这两行配置注释,然后复制的指令粘贴到上面,把里面的域名替换成自己的域名就OK了。
/etc/nginx/certs/marsview.com.cn.pem 这个路径其实就是证书的路径,我们还没有下载证书,第四步会下载证书放到这个位置即可。
4. 下载和更新证书
第三步只是增加了证书的配置,实际上我们申请的证书还没有更新到服务器里面,我们还需要下载证书才可以。
复制安装脚本
在服务器中执行
进入到/etc/nginx
目录执行复制的命令
cd /etc/nginx
curl -s https://get.httpsok.com/ | bash -s QOApIyZzZ89
** 下载和安装成功 **
最终会在当前目录生成.pem
和.key
证书,这两个文件刚好是上面server
里面配置的ssl_certificate
和ssl_certificate_key
对应的路径。
重启服务
nginx -s reload
其实证书下载完成后,会自动重启nginx
。
打开网站
-
输入:
marsview.com.cn
,回车,会自动变成https://www.marsview.com.cn/
-
查看证书
总结
- 如果你对
https
有需求,不妨试试这种方式。 - 当前证书有效期三个月,到期需要手动更新,当然这个地方有人可能会吐槽。
- 默认只送三张,后续可能需要收费,但,我觉得这样好用的产品,我还是愿意付费使用。
号外
Marsview
点赞Star
三个月内突破1.1K
- 后端代码迁出独立仓库:github.com/JackySoft/m…
- 开源三个月来,用户访问量突破
25
万 - 平台创建项目突破
2000
,平台创建页面突破2500
,平台自定义组件突破500
欢迎体验最新版本在线低代码平台:
- 默认版本:www.marsview.cc
- 加密证书版本:www.marsview.com.cn
未来会上线docker
版方案,支持快捷的私有化部署。