ubuntu系统申请免费HTTPS证书

1. 安装Certbot和Apache插件

sudo apt install certbot python3-certbot-apache

2. 运行Certbot并选择域名

#回车后输入域名
sudo certbot --apache
或
#直接在命令中把域名填上,我这里是两个域名,按你的需求进行增删
sudo certbot --apache -d 域名 -d 域名

注意:回车后需要你输入域名,这里输入是你服务器解析的域名,并且需要域名备案成功的才可以申请成功,不然会提示失败!

3. 检查证书信息(也可以直接用使用https方式访问)

sudo certbot certificates

此命令会列出所有已安装的证书及其过期时间。

4. 设置自动续期

Let’s Encrypt证书有效期为90天,需定期续期。Certbot会自动配置cron或systemd定时任务,但可手动测试续期流程:

sudo certbot renew --dry-run

5. 手动配置Apache

可编辑Apache虚拟主机文件(如/etc/apache2/sites-available/000-default-ssl.conf),你有自己的正式项目,就直接编辑对应项目的配置文件即可。

<VirtualHost *:443>
    ServerName 您的域名
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/您的域名/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/您的域名/privkey.pem

    # 其他配置(如日志、目录权限等)
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

6. 启用SSL模块

sudo a2enmod ssl

7. 重启Apache

sudo systemctl restart apache2

8. 强制HTTPS重定向

为确保所有流量通过HTTPS传输,可在Apache配置中添加重定向规则。编辑默认站点配置(如/etc/apache2/sites-available/000-default.conf),你有自己的正式项目,就直接编辑对应项目的配置文件即可。

<VirtualHost *:80>
    ServerName 您的域名
    Redirect permanent / https://您的域名/
</VirtualHost>

9. 启用重写模块

sudo a2enmod rewrite

10. 重启Apache

sudo systemctl restart apache2
### 如何在Ubuntu中生成自签名SSL证书 为了实现在Ubuntu上创建自签名证书以实现HTTP到HTTPS的转换,可以遵循一系列特定的操作流程。这不仅涉及到了解如何生成这些证书,还涉及到怎样修改Web服务器配置使得它能够支持通过HTTPS协议安全地提供服务。 #### 创建自签名SSL证书 首先,在终端执行命令安装`openssl`工具,尽管大多数Linux发行版默认已预装此软件包: ```bash sudo apt-get update && sudo apt-get install openssl ``` 接着,利用OpenSSL生成私钥以及相应的X.509证书请求文件(CSR),最后一步是从CSR创建自签名证书。整个过程可以通过一条复合命令完成: ```bash openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/nginx-selfsigned.key \ -out /etc/ssl/certs/nginx-selfsigned.crt ``` 这条命令将会询问一些关于组织的信息;对于测试环境而言,可以直接输入或跳过这些问题的回答[^1]。 #### 修改Nginx配置以启用HTTPS 一旦拥有了所需的`.crt`和`.key`文件之后,就需要编辑Nginx站点配置文件来指定新创建的安全凭证的位置。通常情况下,这个路径位于`/etc/nginx/sites-available/default`或者专门用于SSL连接的配置文件内。使用文本编辑器打开该文件,并添加如下所示的内容[^3]: ```nginx server { listen 443 ssl; server_name localhost; ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; ... } ``` 此外,还需要确保已经启用了必要的模块和服务以便处理加密流量。如果之前未曾这样做,则可能需要运行以下命令激活它们: ```bash sudo a2enmod ssl sudo systemctl restart nginx.service ``` #### 将HTTP重定向至HTTPS 为了让所有的HTTP请求自动被转发给对应的HTTPS版本页面,可以在同一个配置文件里增加一段简单的规则来达成目的。具体做法是在现有的非SSL `server{}`区块内部加入下面这段指令[^4]: ```nginx if ($scheme != "https") { rewrite ^ https://$host$request_uri? permanent; } ``` 以上就是完整的操作步骤说明,按照上述指导应该能够在Ubuntu系统环境下成功部署带有自签名SSL证书保护下的网站应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值