Nginx如何安装 SSL证书
更新时间:2024-04-25 来源:sslaaa 作者:sslaaa

SSL证书如何安装

SSL证书是一个加密的文件,你要把这个证书文件安装到你的服务器上,这样SSL证书才能起到HTTPS加密的作用,在客户端与服务器之间建立一个加密通道,保护数据传输不被第三方篡改、拦截,并验证服务器的身份信息

在你生成CSR(证书签名请求)、提交订单、完成SSL证书认证流程后,您的邮箱将收到由CA证书颁发机构签发的SSL证书,通常你可以登录帐号后,在镭铭网络的SSL证书管理页面下载该证书

在你要安装证书之前,通常你需要有三个文件,服务器证书(也就是包含签发域名的SSL证书)、中级证书、私钥,或者是由这三个文件转换格式得到的PFX证书、JKS证书,不同的服务器环境可能会用到不同的证书格式,安装方式也因不同的服务器环境而不同

Nginx如何安装 SSL证书

1.准备所需文件

安装SSL证书到nginx服务器上, 需要两个文件:

证书文件 server.crt :请登录控制台,后下载证书,把下载的压缩包解压,进入nginx这个文件夹,里面有server.crt 这个证书文件,这个文件里面包含有服务器证书和中级证书。

**私钥 server.key **:这是你提交订单前生成CSR的时候生成的,如果你在提交订单时候选择系统生成CSR的,请检查邮箱,有一封邮件主题是 "订单编号xxxx的CSR和私钥"的邮件,下载server.key 这个附件,这个文件就是私钥。

2.配置Ngnix

生成更强的DHE参数 ,这里将生成一个文件,文件位于 /etc/nginx/ssl/dhparam.pem ,在最下面的nginx配置中,我们将使用这个文件

cd /etc/nginx/ssl
openssl dhparam -out dhparam.pem 4096

找到Nginx安装目录下的conf目录,打开 nginx.conf
在任何一个

server{
........
}

的下方添加以下代码,注意将其中的证书和私钥文件内容改成你自己的。

# 重定向 http 到  https
server {
    listen 80;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl http2;

    server_name www.sslaa.com sslaaa.com ;
    index index.php;
    root  /home/wwwroot/sslaaa.com;  

    ssl_certificate /etc/nginx/ssl/server-bundle.crt;   #证书文件路径
    ssl_certificate_key /etc/nginx/ssl/server.key;   #私钥文件路径
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    ssl_session_tickets off;


    ssl_dhparam /etc/nginx/ssl/dhparam.pem;

    # intermediate configuration
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    #### 下面这部分不是必须的,可以选择是否使用 #####

    # HSTS:作用是 让浏览器强制跳转到 https (需要用到nginx 模块 :ngx_http_headers_module ) (63072000秒)
    add_header Strict-Transport-Security "max-age=63072000" always;

    # OCSP stapling  ,有些浏览器会访问CA网站验证证书的有效性,使用 OCSP stapling 可以让这个验证在服务器端完成,提高访客端的访问速度
    ssl_stapling on;
    ssl_stapling_verify on;


}

然后保存。运行

nginx -s reload

重载入 nginx<span> </span>配置文件,让配置生效

Nginx重定向http到https

安装完SSL证书后,网站默认还是使用http的方式访问,如果想要让用户在浏览器输入域名后自动跳转到https的方式访问网站,以下是nginx主机的配置方法:

server
    {
        listen 80;
        location / {
           return 301 https://$host$request_uri;
        }
  

    }

添加以上代码后,然后重启nginx 即可

Nginx的SSL证书安全与兼容性设置

禁用 SSLv2 和 SSLv3

这两个协议都是不安全的, 我们应该在服务器上禁用这两个协议。添加一下代码到网站的配置文件, lnmp的网站配置文件位于 /usr/local/nginx/conf/vhost 目录

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

使用安全的Cipher Suite

将以下代码放在网站的配置文件里面

ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

以上设置不支持Winxp/IE6 ,如果你想网站同时Winxp/IE6的话可以使用使用以下的Cipher Suite

ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

额外的安全设置,请添加如下代码

ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;

Forward Secrecy & Diffie Hellman Ephemeral Parameters
运行以下代码,这段代码运行的时间会比较长,请耐心等待

cd /etc/ssl/certs
openssl dhparam -out dhparam.pem 4096

然后在nginx的网站配置文件中加入如下代码

ssl_dhparam /etc/ssl/certs/dhparam.pem;

添加以上代码后的网址配置文件大致如下

server
    {
        listen 443 ssl http2;
        server_name www.sslaaa.com sslaaa.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/sslaaa.com;
 
        ssl on;
        ssl_certificate cheapssl.crt;
        ssl_certificate_key cheapssl.key;
 
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
 
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
 
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
 
......
 
}

内容经供参考,更多可联系我们咨询

标签

立即加入,让您的品牌更加安全可靠!
申请SSL证书