帮助中心 >
  关于独立服务器 >
  服务器上SSL证书部署的详细步骤
服务器上SSL证书部署的详细步骤
时间 : 2024-12-30 16:23:33
编辑 : Jtti

部署SSL证书需要完成步骤较多,如生成私钥和证书签名,获取证书及在Web服务器上配置SSL,下面是Apache Web服务器上部署SSL证书的流程。

先生成私钥:

openssl genrsa -out your_domain.key 2048

以上命令可以生成2048位私钥,存于your_domain.key中。

生成CSR:

openssl req -new -key your_domain.key -out your_domain.csr

按照提示填写信息,信息是用于生成CSR。

获取SSL证书可以选择从CA购买,提供CSR给CA然后等待审核,完成后就可以获取到证书。也可以直接从IDC服务商那购买SSL证书。证书类型多种,需要根据实际需求选择合适类型。

Apache中配置SSL需要先创建SSL虚拟主机配置,如/etc/apache2/sites-available/your_domain_ssl.conf:

sudo nano /etc/apache2/sites-available/your_domain_ssl.conf

添加内容(根据实际情况定):

<VirtualHost *:443>

    ServerAdmin admin@example.com

    ServerName your_domain.com

    ServerAlias www.your_domain.com

 

    DocumentRoot /var/www/your_domain

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

 

    SSLEngine on

    SSLCertificateFile /etc/letsencrypt/live/your_domain.com/cert.pem

    SSLCertificateKeyFile /etc/letsencrypt/live/your_domain.com/privkey.pem

    SSLCertificateChainFile /etc/letsencrypt/live/your_domain.com/chain.pem

</VirtualHost>

将SSLCertificateFile、SSLCertificateKeyFile和SSLCertificateChainFile指向你的证书文件。

启用新配置:

sudo a2ensite your_domain_ssl.conf

重启Apache服务:

sudo systemctl restart apache2

SSL证书配置是否正确测试/是否生效,可以用SSL在线工具如SSL Server Test等。

确保SSL证书部署网站有域名控制器,SSL证书办法机构会进行验证。确保证书和私钥安全,保证SSL证书在有效期内。生产环境中确保使用2048位甚至更高位数的密钥长度生成密钥。

如果是在Nginx上配置SSL,创建一个新的配置文件或编辑现有的配置文件,例如/etc/nginx/sites-available/your_domain_ssl.conf:

sudo nano /etc/nginx/sites-available/your_domain_ssl.conf

添加:

server {

    listen 443 ssl;

    server_name your_domain.com www.your_domain.com;

 

    ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;

 

    ssl_session_timeout 1d;

    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions

 

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  # disable SSLv3

    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';

    ssl_prefer_server_ciphers on;

 

    # HSTS (ngx_http_headers_module is required) (63072000 seconds = 7280 hours = 300 days)

    add_header Strict-Transport-Security "max-age=63072000" always;

 

    # Add header to use HTTPS

    add_header X-Frame-Options DENY;

    add_header X-Content-Type-Options nosniff;

 

    # SSL Stapling

    ssl_stapling on;

    ssl_stapling_verify on;

    resolver 8.8.8.8 8.8.4.4 valid=300s;

    resolver_timeout 5s;

 

    root /var/www/your_domain;

    index index.html index.htm;

 

    location / {

        try_files $uri $uri/ =404;

    }

}

 

server {

    listen 80;

    server_name your_domain.com www.your_domain.com;

 

    return 301 https://$server_name$request_uri;

}

 

将ssl_certificate和ssl_certificate_key指向你的证书文件。创建符号链接:

sudo ln -s /etc/nginx/sites-available/your_domain_ssl.conf /etc/nginx/sites-enabled/

测试Nginx:

sudo nginx -t

重启Nginx:

sudo systemctl restart nginx

验证SSL部署同上。

 

JTTI-Defl
JTTI-COCO
JTTI-Selina
JTTI-Ellis
JTTI-Eom