如何在VPS上设置免费SSL证书?

avatar
作者
猴君
阅读量:0

在VPS上设置免费SSL证书通常涉及到几个步骤,包括生成密钥和证书签名请求(CSR)、从证书颁发机构(CA)获取SSL证书,以及配置服务器以使用新的SSL证书,以下是详细的步骤:

如何在VPS上设置免费SSL证书?(图片来源网络,侵删)

1. 准备环境

确保你的VPS操作系统已安装以下软件:

OpenSSL(用于生成CSR和私钥)

Apache 或 Nginx(用于配置SSL证书)

安装OpenSSL(如果尚未安装)

对于基于Debian/Ubuntu的系统:

 sudo aptget update sudo aptget install openssl 

对于基于CentOS/RHEL的系统:

 sudo yum update sudo yum install openssl 

2. 生成私钥和CSR

创建目录来存储密钥和证书文件

 mkdir ~/ssl_certs cd ~/ssl_certs 

生成私钥

 openssl genrsa out private.key 2048 

生成CSR

 openssl req new key private.key out certificate.csr 

在生成CSR时,将要求你提供一些信息,如你的国家代码、州/省、城市、组织名称、部门名称、域名和电子邮件,这些信息将被包含在证书中。

3. 获取免费SSL证书

有许多CA提供免费SSL证书服务,如Let's Encrypt,你可以使用它们提供的客户端软件来自动生成和续订证书。

安装Certbot(Let's Encrypt的官方客户端)

对于基于Debian/Ubuntu的系统:

 sudo aptget install softwarepropertiescommon sudo addaptrepository ppa:certbot/certbot sudo aptget update sudo aptget install certbot 

对于基于CentOS/RHEL的系统,可能需要手动安装Certbot。

使用Certbot获取证书

 sudo certbot certonly webroot w /var/www/html d example.com d www.example.com 

此命令将为example.com及其子域获取证书。webroot选项指定了一个由你控制的目录,Certbot将在此创建临时文件以验证你对域名的控制。

4. 配置Web服务器使用SSL证书

对于Apache

编辑Apache配置文件(通常是/etc/apache2/sitesavailable/000default.conf),并添加以下内容:

 <VirtualHost *:80>     ServerName www.example.com     Redirect / https://www.example.com </VirtualHost> <VirtualHost *:443>     ServerName www.example.com     SSLEngine on     SSLCertificateFile /etc/letsencrypt/live/www.example.com/fullchain.pem     SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem </VirtualHost> 

对于Nginx

编辑Nginx配置文件(通常是/etc/nginx/sitesavailable/default),并添加以下内容:

 server {     listen 80;     server_name www.example.com;     return 301 https://$host$request_uri; } server {     listen 443 ssl;     server_name www.example.com;     ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;     ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;     # 其他SSL配置参数... } 

5. 重启Web服务器

对于Apache

 sudo systemctl restart apache2 

对于Nginx

 sudo systemctl restart nginx 

6. 自动续订SSL证书

由于Let's Encrypt的SSL证书有效期为90天,因此需要定期续订,可以通过设置定时任务来自动执行此操作。

设置Certbot自动续订

 sudo crontab e 

在打开的编辑器中,添加以下行(根据你的时间设置调整时间):

 0 0,12 * * * python c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew quiet 

这将在每天的0点和12点尝试续订即将过期的证书。

通过以上步骤,你应该能够在VPS上成功设置免费的SSL证书,并通过自动续订保持其有效性。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!