[toc]
前言
前段时间,我写了一个基于React
+Express
+MongoDB
的个人网站 frmachao.top,现在要给它加上 ssl
证书,来实现全站https
访问。
证书
购买免费的证书服务
注意: 单域名表示要申请的证书用于绑定1个具体域名(例如,只绑定www.frmachao.top)
创建证书并进行证书申请操作
填写申请信息 并验证 DNS 信息
注意:域名验证记录要在证书签发后再删除,否则因为没有解析记录导致证书签发失败
主机记录值_dnsauth
就是系统自动生成的 域名验证记录 ,因为这里我的域名也是在阿里云解析的,如果你是其他 DNS 服务商解析的,需要自己添加一条这样的域名记录
搭建FTP服务器
参考:阿里云文档
Q:为什么要搭建FTP服务器 A:因为要上传证书到服务器,可能有其他方式上传,但是图形界面更直观些。
补充常用命令
启动服务:systemctl start vsftpd.service
关闭服务:systemctl stop vsftpd.service
重启服务:systemctl restart vsftpd.service
显示服务的状态:systemctl status vsftpd.service
在开机时启用服务:systemctl enable vsftpd.service
在开机时禁用服务:systemctl disable vsftpd.service
查看服务是否开机启动:systemctl is-enabled vsftpd.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
遇到的问题:
- FileZilla客户端 连接时的加密方式..... 卡了我半天 使用文档截图中连接的加密方式时,一直提示连接超时,我以为是配置的FTP服务器有问题,对着文档反复走几遍折腾了 一个小时,最后试了试选择明文连接,结果直接成功了
😭只要没文化 处处是魔法
centos 7 安装 nginx + ssl 模块
我购买是阿里云轻量应用服务器 CentOS 7 的镜像 一开始我直接使用yum方式安装的ngninx,但是这种方式安装的ngninx默认是不支持ssl的,所以需要从代码编译安装Nginx
参考:
源码安装 Nginx
遇到的问题:
- CentOS7中添加环境变量后立即生效,但是重启服务器又失效
原因:添加环境变量到 /etc/profile文件 source /etc/profile 使配置文件生效 参考:CentOS7中添加环境变量后立即生效,但是重启服务器又失效
检查是否已经含有 ssl 模块
nginx -V
看到输出里 含有 --with-http_ssl_module
明就是带ssl参数编译的
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-threads --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module
在Nginx服务器上安装ssl证书
验证
END
学习到的linux命令
mv # 移动文件/目录
cp # 复制文件/目录
touch # 用于修改文件或者目录的时间属性,若文件不存在会新建一个
mkdir # 创建目录
ln # 类似windows 中的快捷方式,这是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
linux 中的几种配置环境变量的文件目录
/etc/bashrc
/etc/profile
/etc/sudoers
另一种方案: Let's Encrypt
Let’s Encrypt 是一家免费、开放、自动化的证书颁发机构(CA),为公众的利益而运行。它是一项由 Internet Security Research Group(ISRG)提供的服务。