参考资料

  1. windows Nginx 本地ssl详细说明以及案例
  2. nginx ssl版本配置详细说明以及案例
  3. SSL证书与HTTPS的关系
  4. SSL证书的基本概念
  5. nginx配置 ssl证书详细说明以及案例
  6. 为什么需要SSL证书
  7. 不同类型SSL证书的差异
  8. windows ssl密码套件详细说明以及案例

SSL证书安装与配置方法

1. 获取SSL证书

  • 从证书颁发机构(CA)购买或申请免费证书(如Let's Encrypt)。

  • 获取证书文件(通常包括:.crt.key.pem.cer)和私钥文件(.key)。

2. 安装证书(以常见服务器为例)

Apache服务器
  1. 上传文件

    • 将证书文件(如domain.crt)和私钥文件(如domain.key)上传到服务器(如/etc/ssl/目录)。

  2. 配置虚拟主机
    修改Apache配置文件(如/etc/apache2/sites-available/default-ssl.conf):

    <VirtualHost *:443>
        ServerName yourdomain.com
        SSLEngine on
        SSLCertificateFile /etc/ssl/domain.crt
        SSLCertificateKeyFile /etc/ssl/domain.key
        SSLCertificateChainFile /etc/ssl/ca_bundle.crt  # 中间证书(如有)
    </VirtualHost>
  3. 重启Apache

    sudo a2enmod ssl
    sudo systemctl restart apache2
Nginx服务器
  1. 上传文件

    • 将证书和私钥上传到服务器(如/etc/nginx/ssl/)。

  2. 配置SSL
    编辑Nginx配置文件(如/etc/nginx/sites-available/yourdomain):

    server {
        listen 443 ssl;
        server_name yourdomain.com;
        ssl_certificate /etc/nginx/ssl/domain.crt;
        ssl_certificate_key /etc/nginx/ssl/domain.key;
        ssl_trusted_certificate /etc/nginx/ssl/ca_bundle.crt;  # 中间证书(如有)
    }
  3. 重启Nginx

    sudo systemctl restart nginx
IIS服务器
  1. 导入证书

    • 打开IIS管理器,选择“服务器证书”。

    • 点击“导入”,选择.pfx文件(需包含私钥),输入密码。

  2. 绑定证书

    • 右键网站 → “编辑绑定” → 添加HTTPS绑定,选择导入的证书。

Tomcat服务器
  1. 转换证书(如需)
    若证书为.crt,转换为.keystore

    openssl pkcs12 -export -in domain.crt -inkey domain.key -out keystore.p12
    keytool -importkeystore -srckeystore keystore.p12 -destkeystore keystore.jks
  2. 配置server.xml
    修改conf/server.xml

    <Connector port="8443" protocol="HTTP/1.1"
        SSLEnabled="true"
        keystoreFile="/path/to/keystore.jks"
        keystorePass="yourpassword"
        scheme="https" secure="true" />

3. 验证配置

  • 访问https://yourdomain.com,确认浏览器显示锁标志。

  • 使用工具检查(如SSL Labs)。

4. 强制HTTPS(可选)

  • Apache:在配置中添加重定向规则:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  • Nginx:添加return 301规则:

    server {
        listen 80;
        server_name yourdomain.com;
        return 301 https://$host$request_uri;
    }

5. 自动续签(Let's Encrypt)

使用Certbot工具:

sudo certbot --apache  # Apache
sudo certbot --nginx   # Nginx

配置自动续期:

sudo crontab -e
添加:0 0 * * * /usr/bin/certbot renew --quiet