SSL证书如何安装、部署?教程LinuxServer

savh 172

安装和部署 SSL 证书是为了让网站支持 HTTPS,增强数据传输的安全性。以下是详细的安装和部署步骤,包括获取证书、配置服务器和验证部署。

SSL 证书的准备工作

    选择 SSL 证书类型:

    免费证书:例如 Let’s Encrypt,完全免费,适合个人或中小型网站。

    付费证书:例如 Digicert、GlobalSign、Sectigo 等,提供更高级别的信任认证(如 EV 证书,显示绿色公司名称)。

购买或申请证书:

如果使用付费证书,需在证书颁发机构(CA)购买。

如果使用免费证书,推荐使用 Let’s Encrypt。

    生成 CSR(Certificate Signing Request,证书签名请求):

    CSR 文件包含

    密钥和站点信息,用于申请证书。

    可以通过工具(如 OpenSSL)生成 CSR。

验证域名所有权,CA 通常要求域名所有者通过以下方式验证域名:
        DNS 验证:在域名的 DNS 配置中添加 TXT 记录。
        HTTP 验证:在服务器上放置验证文件。
        邮箱验证:通过域名管理员邮箱完成验证。

生成 CSR 文件并获取证书

有效的“CSR”(证书签发请求)才能配置申请域名 SSL 证书。可以访问:http://chinassl.net/ssltools/generator-csr.html 生成一个,请注意创建csr时生成的key文件请保存好,用于后续证书使用。

除了以上方法,还可采用openssl方法:

1. 生成私钥和 CSR 文件

使用 OpenSSL 命令生成私钥和 CSR 文件:

# 生成私钥(private.key) 
openssl genrsa -out private.key 2048 
# 生成 CSR 文件(certificate.csr) 
openssl req -new -key private.key -out certificate.csr

在生成 CSR 时,你需填写以下信息:

Country Name (两位国家代码 ):如 CN。
State or Province Name:如 Guangdong。
Locality Name (城市):如 Guangzhou。
Organization Name (组织名):如 MyCompany Inc.。
Organizational Unit Name (部门名):如 IT.
Common Name (域名):如 example.com。

2. 提交 CSR 文件并完成验证

    将 certificate.csr 文件提交给证书颁发机构(CA)。

    完成域名验证后,CA 会签发证书文件。

安装和部署 SSL 证书

SSL 证书的安装过程取决于所用的 Web 服务器类型。以下是主流服务器的配置方法:

1. Nginx

1.1 上传证书文件

将以下文件上传到服务器:

    证书文件(通常是 .crt 或 .pem 文件)。

    私钥文件(private.key,在生成 CSR 时创建)。

    中间证书(CA 提供的中间证书,通常是 .crt 文件)。

建议将这些文件放置在 /etc/nginx/ssl/ 目录下:

mkdir -p /etc/nginx/ssl 
cp private.key /etc/nginx/ssl/ 
cp certificate.crt /etc/nginx/ssl/ 
cp intermediate.crt /etc/nginx/ssl/

1.2 配置 Nginx

编辑配置文件/etc/nginx/sites-available/default 或对应的站点配置文件:

server { 
listen 443 ssl;
server_name example.com; 
ssl_certificate /etc/nginx/ssl/certificate.crt; 
ssl_certificate_key /etc/nginx/ssl/private.key; 
ssl_trusted_certificate /etc/nginx/ssl/intermediate.crt; 
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; 
location / { root /var/www/html; index index.html; } 
} 
# 重定向 HTTP 到 HTTPS 
server { 
listen 80; 
server_name example.com; 
return 301 https://$host$request_uri; 
}

1.3 测试并重启 Nginx

测试配置是否正确:

nginx -t

如果没有错误,则重启 Nginx:

systemctl restart nginx

2. Apache

2.1 上传证书文件

将证书文件、私钥文件和中间证书上传到服务器,通常存放在 /etc/apache2/ssl/:

mkdir -p /etc/apache2/ssl 
cp private.key /etc/apache2/ssl/ 
cp certificate.crt /etc/apache2/ssl/ 
cp intermediate.crt /etc/apache2/ssl/

2.2 配置 Apache

编辑站点配置文件,例如 /etc/apache2/sites-available/example.conf:

<VirtualHost *:443> 
ServerName http://example.com 
DocumentRoot /var/www/html 
SSLEngine on 
SSLCertificateFile /etc/apache2/ssl/certificate.crt 
SSLCertificateKeyFile /etc/apache2/ssl/private.key 
SSLCertificateChainFile /etc/apache2/ssl/intermediate.crt 
<Directory /var/www/html> 
AllowOverride All 
</Directory> 
</VirtualHost> 
# 重定向 HTTP 到 HTTPS 
<VirtualHost *:80> 
ServerName http://example.com 
Redirect permanent / https://example.com/ 
</VirtualHost>

2.3 启用 SSL 模块并重启 Apache

启用 SSL 模块和 HTTPS 站点配置:

a2enmod ssl 
a2ensite example.conf 
systemctl restart apache2

3. 使用 Let’s Encrypt 自动化部署

如果使用的是 Let’s Encrypt,可以通过工具 Certbot 自动生成和部署证书。

3.1 安装 Certbot

根据服务器类型安装 Certbot:

# Nginx 
apt install certbot python3-certbot-nginx 
# Apache 
apt install certbot python3-certbot-apache

3.2 自动生成 SSL 证书

运行以下命令,Certbot 会自动完成证书申请和配置:

# Nginx
certbot --nginx -d http://example.com -d http://www.example.com 
# Apache 
certbot --apache -d http://example.com -d http://www.example.com

3.3 自动更新证书

Let’s Encrypt 的证书有效期为 90 天,建议设置自动更新任务:

crontab -e

在文件中添加以下行:

0 3 * * * certbot renew --quiet
验证 SSL 部署是否成功

1. 检查 HTTPS 是否可用

    访问 https://example.com,确认是否能正常打开,且浏览器显示安全锁图标。

2. 使用 SSL 检测工具

    在线检测工具:SSL Labs(https://www.ssllabs.com/ssltest/)

        可以检测证书是否正确安装、是否包含中间证书、TLS 配置是否安全等。

    命令行检测:

openssl s_client -connect http://example.com:443
常见问题及解决

1. 浏览器提示“不安全”或“证书无效”

    检查是否安装了中间证书(CA 提供的链文件)。

    确保证书的域名(Common Name 或 SAN)与访问的域名一致。

2. HTTP 没有重定向到 HTTPS

    确认是否配置了重定向规则

Nginx:return 301 https://$host$request_uri;
Apache:Redirect permanent / https://example.com/

3. 证书过期

    如果使用 Let’s Encrypt,确保配置了自动更新任务(certbot renew)。

    手动更新证书时,重新提交 CSR 文件申请新证书。

小结

安装和部署 SSL 证书的流程可以分为以下几个步骤:

    获取证书:通过 CA 申请或使用 Let’s Encrypt。

    配置服务器 :为 Nginx 或 Apache 配置证书文件。

    验证部署:通过浏览器或检测工具确认 HTTPS 是否正常工作。

通过正确的部署,可以让网站支持 HTTPS,提升安全性和用户信任,同时改进搜索引擎排名。

隐藏内容,登录查看。

http://www.savh.cn/thread-1629.htm

转载请注明:Savh.Cn 发表

推荐阅读
最新动态 (0)

    ( 登录 ) 后,可以发表评论!

    返回