legegecoder
legegecoder
发布于 2021-04-08 / 652 阅读 / 1 评论 / 0 点赞

从零开始 Nginx配置SSL证书

写在前面

通过SSL证书服务购买和签发证书后,可以将已签发的证书下载并安装到Nginx服务器上。本文介绍了下载SSL证书并在Nginx服务器上安装证书的具体操作。

前提条件

  • 通过SSL证书服务完成证书签发
  • 远程登录工具(windows:Xshell,Mac:FinalShell)

SSL证书获取

阿里云腾讯云都有白嫖的SSL证书

阿里云获取SSL证书

产品与服务搜索ssl证书,购买免费的DV单域名证书,一年可以免费用20个,我现在也只有两个域名所以够用,实在不行再去腾讯云白嫖。
ssl

Nginx配置SSL

线仔仔证书到本地,我用的Nginx下载NginxSSL证书。解压获得下面两个文件
cert
在服务器 /etc/nginx/下创建 cert文件夹,将解压的文件上传到文件夹里。
编辑/conf.d下的配置文件(默认你的配置文件都在conf.d下)

#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        root html;  #站点目录。
        index index.html index.htm;
    }
}

可选:设置HTTP请求自动跳转HTTPS。

server {
    listen 80;
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        index index.html index.htm;
    }
}

重载配置

service reload nginx

评论