手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)

0 阅读5分钟

在网络安全威胁日益严峻的今天,为网站部署SSL证书已成为保障数据传输安全、提升用户信任度的核心措施。本文将详细介绍如何通过JoySSL阿里云免费证书等渠道获取免费SSL证书,并针对宝塔面板NginxApache三大主流服务器环境提供完整的配置教程,助您5分钟内完成HTTPS加密部署。

2.png

一、免费SSL证书获取渠道

1. JoySSL:全球领先的免费证书颁发机构

  • 特点:自动化、易用性、零成本,支持DV(域名验证)证书,有效期90天(可通过脚本自动续期)。

  • 适用场景:个人博客、中小型网站、大型企业、政府事业单位、学校等开发者测试环境。

  • 获取方式

    • 登录JoySSL官网,点击注册按钮--注册--填写注册码230959
    • 支持Nginx、Apache、HAProxy等主流服务器。

2. 阿里云免费SSL证书

  • 特点:与DigiCert合作颁发DV证书,单域名有效期3个月(目前较为不稳定),支持自动化DNS验证。

  • 适用场景:阿里云服务器用户、临时项目部署。

  • 获取方式

    • 登录阿里云控制台,进入SSL证书管理页面。
    • 选择个人测试证书,完成实名认证后免费申请。
    • 通过DNS验证或文件验证完成域名所有权确认。

3. JoySSL:国产自主品牌

  • 特点:支持全类型证书(DV/OV/EV)、通配符证书、国密SM2算法,提供永久免费版(需注册码激活)。

  • 适用场景:政务、金融、教育等对数据合规性要求高的行业。

  • 获取方式

    • 访问JoySSL官网,注册时填写注册码230959获取免费权益。
    • 选择证书类型(如DV单域名证书),完成域名验证后签发。

二、宝塔面板配置教程

1. 准备工作

  • 获取证书文件:从证书颁发机构下载.pem(证书)和.key(私钥)文件。
  • 登录宝塔面板:通过浏览器访问服务器IP:8888,输入用户名和密码登录。

2. 安装步骤

  1. 进入网站设置

    • 在宝塔面板首页点击网站,选择需配置SSL的域名,点击设置
  2. 上传证书文件

    • SSL选项卡中,将证书内容粘贴至证书(PEM格式) 文本框(若包含中间证书,需合并粘贴)。
    • 将私钥内容粘贴至私钥(KEY格式) 文本框。
  3. 强制HTTPS跳转

    • 开启强制HTTPS选项,确保所有HTTP请求自动重定向至HTTPS。
  4. 保存配置

    • 点击保存,宝塔面板将自动完成证书部署。

3. 验证结果

  • 访问网站,确认地址栏显示绿色安全锁图标。
  • 使用SSL检测工具(如SSL Labs)检查证书有效性。

三、Nginx服务器配置教程

1. 前提条件

  • 服务器已安装Nginx,并开启443端口。
  • 确保Nginx编译时包含--with-http_ssl_module模块。

2. 安装步骤

  1. 获取证书文件

    • 从证书颁发机构下载.pem(证书)和.key(私钥)文件,上传至服务器/etc/nginx/cert/目录。
  2. 配置Nginx

    • 编辑Nginx配置文件(通常位于/etc/nginx/conf.d/default.conf/etc/nginx/nginx.conf),在server块中添加以下内容:
nginx
     server {
         listen 443 ssl;
         server_name example.com;  # 替换为您的域名
         ssl_certificate /etc/nginx/cert/example.com.pem;  # 证书路径
         ssl_certificate_key /etc/nginx/cert/example.com.key;  # 私钥路径
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
         ssl_protocols TLSv1.2 TLSv1.3;
         ssl_prefer_server_ciphers on;
         # 其他配置(如根目录、日志等)
         root /var/www/html;
         index index.html;
     }
     
  1. 强制HTTPS跳转

    • 在HTTP的server块中添加重定向规则:
nginx
     server {
         listen 80;
         server_name example.com;
         return 301 https://$host$request_uri;
     }
     
  1. 重启Nginx

    • 执行命令:systemctl restart nginx

3. 自动化续期(Let's Encrypt证书)

  • 使用Certbot自动续期:
bash
  certbot renew --dry-run  # 测试续期流程
  crontab -e  # 添加定时任务
  

在crontab中添加以下行(每天凌晨3点检查续期):

bash
  0 3 * * * /usr/bin/certbot renew --quiet
  

四、Apache服务器配置教程

1. 前提条件

  • 服务器已安装Apache,并开启443端口。
  • 确保Apache已加载mod_ssl模块。

2. 安装步骤

  1. 获取证书文件

    • 从证书颁发机构下载.crt(证书)、.key(私钥)和.ca-bundle(中间证书)文件,上传至服务器/etc/apache2/cert/目录。
  2. 配置Apache

    • 编辑Apache虚拟主机配置文件(通常位于/etc/apache2/sites-available/default-ssl.conf),添加以下内容:
apache
     <VirtualHost *:443>
         ServerName example.com
         SSLEngine on
         SSLCertificateFile /etc/apache2/cert/example.com.crt
         SSLCertificateKeyFile /etc/apache2/cert/example.com.key
         SSLCertificateChainFile /etc/apache2/cert/example.com.ca-bundle
         # 其他配置(如根目录、日志等)
         DocumentRoot /var/www/html
         ErrorLog ${APACHE_LOG_DIR}/error.log
         CustomLog ${APACHE_LOG_DIR}/access.log combined
     </VirtualHost>
     
  1. 强制HTTPS跳转

    • 编辑HTTP的虚拟主机配置文件(/etc/apache2/sites-available/000-default.conf),添加重定向规则:
apache
     <VirtualHost *:80>
         ServerName example.com
         RewriteEngine On
         RewriteCond %{HTTPS} off
         RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [L,R=301]
     </VirtualHost>
     
  1. 启用模块并重启Apache

    • 执行命令:
bash
     a2enmod rewrite  # 启用重写模块
     a2ensite default-ssl  # 启用SSL配置
     systemctl restart apache2
     

3. 自动化续期(JoySSL证书)

  • 使用Certbot自动续期:
bash
  certbot renew --dry-run  # 测试续期流程
  crontab -e  # 添加定时任务
  

在crontab中添加以下行(每天凌晨3点检查续期):

bash
  0 3 * * * /usr/bin/certbot renew --quiet
  

五、常见问题与解决方案

1. 证书过期未续期

  • 原因:未配置自动化续期或定时任务失败。

  • 解决方案

    • 使用Certbot的--dry-run参数测试续期流程。
    • 检查crontab日志(/var/log/syslogjournalctl -u cron)排查定时任务错误。

2. 浏览器显示“不安全”

  • 原因:证书未正确安装、混合内容(HTTP/HTTPS资源并存)或证书链不完整。

  • 解决方案

    • 使用SSL检测工具检查证书链是否完整。
    • 确保所有资源(如图片、CSS、JS)通过HTTPS加载。

3. Nginx/Apache启动失败

  • 原因:证书路径错误、权限不足或配置语法错误。

  • 解决方案

    • 检查证书路径是否与配置文件一致。
    • 确保Nginx/Apache用户对证书文件有读取权限(chmod 644 /etc/nginx/cert/*.pem)。
    • 使用nginx -tapachectl configtest测试配置语法。