2021年7月

Nginx配置ssl证书,证书从阿里云购买

移步到nginx目录下的 sites-enabled 文件夹

打开对应配置文件

    server {  
        listen 80;
        .....

先不用管 80 端口内容,新建一个 443:

server {   

    listen 443;
    server_name www.abc.com;
    root /wwwroot/www_abc_com;

    ssl on;
    ssl_certificate /ssl/www.abc.com/a.pem;   #(证书公钥)
    ssl_certificate_key /ssl/www.abc.com/a.key;   #(证书私钥)
    ssl_session_timeout 5m;
    #ssl_protocols SSLv2 SSLv3 TLSv1;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    #ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;

配置好之后,把 80 端下部分内容复制到 443 下面 } 结束

强制HTTPS 把 80 端口 301 重定向

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

重启 nginx

首先移步到你的配置文件目录,证书从阿里云购买

apache\conf\vhost

多站点配置请不要在 httpd.conf 上做文章!!!

打开 xxxxx.conf 对应的域名配置

里面原有的80端口内容不要改动,下面新增

<VirtualHost *:443>

    DocumentRoot "D:\wwwroot\www_abc_com"
    ServerName www.abc.com
    ServerAlias abc.com www.abc.com

    SSLEngine on
    SSLCertificateFile D:\ssl\www.abc.com\xxx.crt
    SSLCertificateKeyFile D:\ssl\www.abc.com\xxx.key
    SSLCertificateChainFile D:\ssl\www.abc.com\xxx.crt

    ErrorDocument 403 /403.html
    ErrorDocument 404 /404.html
    ErrorDocument 502 /502.html

</VirtualHost>

SSLCertificateFile 是指证书公钥
SSLCertificateKeyFile 是指证书私钥
SSLCertificateChainFile 是指根证书

然后复制 80 端口里面的除下面内容外的一些配置:

<VirtualHost *:80>
    DocumentRoot "D:\wwwroot\zyyspwlpt.com"
    ServerName zyyspwlpt.com
    ServerAlias zyyspwlpt.com www.zyyspwlpt.com
    
    ErrorDocument 403 /403.html
    ErrorDocument 404 /404.html
    ErrorDocument 502 /502.html

复制到 443 端口配置文档里面

需要强制HTTPS的话,可以使用 .htaccess 内容如下:

<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>

重启 apache