文档(tools): 修改https配置文件

This commit is contained in:
NICE CODE BY DEV 2023-09-03 16:58:09 +08:00
parent efb828592a
commit 56085d9e7f
3 changed files with 17137 additions and 78 deletions

View File

@ -10,88 +10,90 @@ group:
# 💊 配置https
[https://learnku.com/articles/33400](https://learnku.com/articles/33400)
## 配置流程
本方法配置https用的是Lets Encrypt 系统为centOS
## 方案1
### 1. 防火墙打开80和443端口
* 一、安装nginx需要安装ssl安装过程省略
* 二、安装certbot
> sudo yum install python2-certbot-nginx
* 三、运行
> sudo certbot --nginx
如果运行失败,出现包不存在,执行如下操作(以下是个巨坑) :
```
pip uninstall requests
pip uninstall urllib3
yum remove python-urllib3
yum remove python-requests
yum install python-urllib3
yum install python-requests
yum installcertbot
yum install docker-compose
```
启动之后会让你输入邮箱、域名等一些信息,很简单,这里就不多说了。
另外nginx的server_name需要用你配置的域名不然无法自动配置
* 四、错误处理(不报错请无视)
如果出现这个错误The error was: NoInstallationError()那就是找不到nginx环境 解决:
```
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
ln -s /usr/local/nginx/conf/ /etc/nginx
```js
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
```
* 五、定时注册
这里需要注意的是https的服务时间为3个月需要定时注册执行以下命令即可
sudo certbot renew --dry-run
### 2. 安装 certbot 工具
## 方案2
## 配置证书
我们在 etc/nginx/ 目录下新建 ssl 文件夹来存放证书。把 crt 证书文件和 key 私钥文件上传到这里。然后就可以配置 Nginx 配置文件了。
我的配置文件放在 sites-enabled 文件夹里,我们删掉默认的文件新建一个,具体配置内容可以参考腾讯云的操作指导。
下面是我的配置文件
```js
yum install -y epel-release
yum install -y certbot
```
```javascript
# 配置 http 访问时通过 301 转发到 https 上。
server{
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
### 3. 申请证书
# 证书部分内容配置,注意证书路径写对,其他地方照抄就行了
申请成功后,证书会保存在 /etc/letsencrypt/live/j710328466.github.io/ 下面:
```js
certbot certonly --webroot -w [Web站点目录] -d [站点域名] -m [联系人email地址] --agree-tos
```
> e.g: certbot certonly --webroot -w /usr/local/nginx/html -d j710328466.github.io -m <jzx710328466@gmail.com> --agree-tos
### 4. 创建自动更新证书脚本
因为Let's Encrypt 的证书有效时长是90天如果想要省去手动去更新脚本的操作那这个时候就需要给个脚本来实现自动化
```js
//更新证书
certbot renew --dry-run
 
//如果不需要返回的信息,可以用静默方式
certbot renew --quiet
// 编辑开始写入自动化脚本
crontab -e
// 把这段写入脚本的最后一行,意思是每月的一号 5点会自动更新签名并且重新启动nginx
00 05 01 * * /usr/bin/certbot renew --quiet && /bin/systemctl restart nginx
```
### 5. 配置nginx
1. 修改默认的server
```js
server {
listen 443 ssl default_server;
server_name www.example.com;
ssl on;
ssl_certificate /etc/nginx/ssl/1_www.example.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_www.example.com.key;
ssl_session_timeout 5m;
listen 80;
server_name j710328466.github.io;
rewrite ^ https://$server_name$request_uri? permanent;
}
```
2. 修改 https 的 server
```js
# HTTPS server
#
server {
listen 443 ssl;
server_name j710328466.github.io;
ssl_certificate /etc/letsencrypt/live/j710328466.github.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/j710328466.github.io/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_dhparam /etc/ssl/private/dhparam.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_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK';
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8000;
root html;
index index.html index.htm;
}
}
# 这一步把 顶级域名转发到 www 二级域名上,有利于 SEO
server {
listen 443 ssl;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
```
第一个server 配置的是把普通 80 端口访问的 http 协议转发到 https 访问。 第二个server 配置的就是证书路径和一些参数,这个照抄就行了,只要把证书路径写对 第三个server 配置的是把不带 www 的顶级域名转发到带 www 的二级域名,利于 SEO. 比如 example.com 会自动跳转到 www.example.com 。

View File

@ -16,10 +16,7 @@ group:
#### 确认网络
- ping [www.baidu.com](http://www.baidu.com)
#### 确认 yum 源是否可用
- yun list|grep gcc
- ping [j710328466.github.io](j710328466.github.io)
#### 关闭 iptables 规则
- iptables -L 查看
@ -47,26 +44,35 @@ wget [http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz](
// 2
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
```
#### 确认 yum 源并更新源
- yum list|grep gcc
- yum install -y epel-release
- yum -y update
### centos 快速安装
- yum install nginx -y
## 常用命令
### 查看 nginx 配置文件路径和安装路径
> nginx -t
### 开始
systemctl start nginx
### 重启
> nginx -s reload
> systemctl restart nginx
### 杀掉
> killall -9 nginx
### 初始目录
> /usr/share/nginx/html

17051
pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load Diff