使用Certbot申请ssl证书

安装certbot

# sudo apt update && sudo apt install certbot

获取证书

安装好管理工具之后, 我们需要申请证书下来, 这里我的web服务器是NGINX, 并且我没有网站的静态目录, 所以我使用这个命令申请:

# sudo certbot certonly --standalone -d xxx.com -d www.xxx.com 

如果你的网站有静态目录的话, 可以把–standalone改成–webroot并且加上-w参数申请, 类似这样:

# sudo certbot certonly --webroot -w /srv/www/www.xxx.com -d xxx.com -d www.xxx.com

在你使用–standalone申请证书的时候需要关闭nginx, 因为certbot会启用443端口校验你的域名信息, 如果nginx没有关闭, 会导致端口占用。

# sudo services nginx stop

配置证书

申请证书完成之后证书会存在在/etc/letsencrypt/live/目录, 我们查看一下没有问题后打开nginx的配置文件修改证书载入路径:

server {
    server_name www.xx.com;
    error_log  /var/log/nginx/www.xx.error.log ;
    access_log /var/log/nginx/ws.xx.access.log;
    # 域名的ssl认证
   listen 443 ssl; # managed by Certbot
   ssl_certificate /etc/letsencrypt/live/www.xx.com/fullchain.pem; 
   ssl_certificate_key /etc/letsencrypt/live/www.xx.com/privkey.pem;  Certbot
   include /etc/letsencrypt/options-ssl-nginx.conf;    
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;      
   }

重启nginx 输入网址访问一下, 证书启用是否成功: https://xxx.com

使用 Certbot 可以很容易地为 Django 应用程序申请 SSL 证书,以加强安全性。以下是一些步骤: 1. 安装 Certbot 在终端中运行以下命令来安装 Certbot: ``` sudo apt-get update sudo apt-get install certbot ``` 2. 获取 SSL 证书 在运行 Certbot 之前,需要确保您的域名已经指向您的服务器。运行以下命令获取 SSL 证书: ``` sudo certbot certonly --webroot --webroot-path /path/to/your/django/app/staticfiles -d yourdomain.com -d www.yourdomain.com ``` 请将“/path/to/your/django/app/staticfiles”替换为您 Django 应用程序的静态文件路径。此命令将为您的域名和 www 子域名获取 SSL 证书。 3. 配置 Django 在 Django 的 settings.py 文件中添加以下内容: ``` SECURE_SSL_REDIRECT = True SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True ``` 以上设置将确保 Django 应用程序只使用 HTTPS 协议,并且会将所有 HTTP 请求重定向到 HTTPS。此外,会将安全头设置为从代理服务器传递的 HTTPS 请求。 4. 配置 Web 服务器 在您的 Web 服务器配置文件中,将 HTTPS 设置为默认协议,并将 SSL 证书路径设置为 Certbot 生成的路径。 例如,在 Nginx 中,可以按如下方式配置: ``` server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name yourdomain.com www.yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; ... } ``` 以上设置将确保您的 Web 服务器接受 HTTPS 请求,并将 SSL 证书路径设置为 Certbot 生成的路径。 5. 重新启动 Web 服务器 最后,重新启动您的 Web 服务器以使更改生效。 现在,您的 Django 应用程序已经具有 SSL 证书,可以通过 HTTPS 访问了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值