Nginx SSL证书部署,开启全站HTTPS访问(多域名)

我们都知道,现在已经进入了HTTPS时代,连搜索引擎都会专门为HTTPS网站的索引进行加权。HTTPS的主要特点是更安全,虽然有可能会让我们的访问变得稍慢一些,但是保证安全以及与时俱进听起来很有吸引力。

下面我们就以从腾讯云申请的免费SSL证书为例,演示下如何通过nginx为我们的网站开启HTTPS访问。


欢迎大家关注我的个人博客【数洞】 【备用站】

一、获取证书

BAT等大型云服务提供商都有免费的SSL证书申请通道,鉴于我的域名、服务器都是从腾讯云购买,因此我们以腾讯云为例:【腾讯云SSL证书免费申请】

按要求填写信息,基本上二十分钟内会完成审核。通过审核后,将我们的证书下载下来,然后从Nginx文件夹内获得SSL证书文件1_www.domain.com_bundle.crt和私钥文件2_www.domain.com.key

二、证书安装

将域名www.domain.com的证书文件1_www.domain.com_bundle.crt、私钥文件2_www.domain.com.key保存到nginx目录下,例如我的nginx的目录在/etc/nginx目录下。
更新Nginx根目录下/etc/nginx/nginx.conf文件如下:

 server {
        listen 443;
        server_name www.domain.com; #填写绑定证书的域名
        ssl on;
        ssl_certificate 1_www.domain.com_bundle.crt;
        ssl_certificate_key 2_www.domain.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        location / {
            root   html; #站点目录
            index  index.html index.htm;
        }
    }

配置完成后,先用nginx –t来测试下配置是否有误,正确无误的话,重启nginx(nginx -s reload)。就可以使用https://www.domain.com来访问。

注:

配置文件参数说明
listen 443SSL 访问端口号为 443
ssl on启用 SSL 功能
ssl_certificate证书文件
ssl_certificate_key私钥文件
ssl_protocols使用的协议
ssl_ciphers配置加密套件,写法遵循 openssl 标准

三、使用全站加密,HTTP自动跳转HTTPS(可选)

对于用户不知道网站可以进行HTTPS访问的情况下,让服务器自动把HTTP的请求重定向到HTTPS。
在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在WEB服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre),在HTTP的server配置里增加rewrite ^(.*) https://$host$1 permanent;,这样就可以实现从端口80进来的请求,重定向为HTTPS了。

四、nginx.conf文件示例

由于我的个人博客有两个域名,所以有四个server配置在里边,具体如下:

server {
    listen       443;
    server_name  www.data-insights.cn;
    ssl on;
    ssl_certificate 1_www.data-insights.cn_bundle.crt;
    ssl_certificate_key 2_www.data-insights.cn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    root         /data/www/hexo;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

server {
    listen       443;
    server_name  www.data-insight.cn;
    ssl on;
    ssl_certificate 1_www.data-insight.cn_bundle.crt;
    ssl_certificate_key 2_www.data-insight.cn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    root         /data/www/hexo;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

server {
    listen       80;
    server_name  www.data-insights.cn;
    root         /data/www/hexo;
    rewrite ^(.*) https://$host$1 permanent;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

server {
    listen       80;
    server_name  www.data-insight.cn;
    root         /data/www/hexo;
    rewrite ^(.*) https://$host$1 permanent;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}
### 华为云 SSL 证书部署教程 #### 准备工作 为了成功在华为云上部署SSL证书,需先完成一些准备工作。这包括确保拥有一个有效的域名以及该域名已完成备案(如果在中国大陆)。此外,还需确认已注册并登录华为云账号。 #### 获取SSL证书 SSL证书管理(SCM)[^1] 是由华为云联合全球知名数字证书服务机构(CA),提供的一站式SSL证书全生命周期管理服务。对于初次使用者来说,可以通过SCM申请免费版的DV (Domain Validation) 类型SSL证书来保护个人或小型企业网站的安全性[^4]。 #### 配置DNS解析 当选择了合适的SSL产品之后,在购买过程中会提示进行域名所有权验证。此时按照指引前往域名服务商处添加相应的TXT记录以证明对该域名的所有权。注意,如果是选择DV类型的SSL,则只需针对具体要绑定的那个单一子域做相应设置即可。 #### 安装与配置Nginx服务器端环境 一旦收到签发成功的邮件通知后就可以着手准备安装过程了: - 使用SSH工具远程连接到目标Linux系统的ECS实例; - 将解压后的`.crt` 和 `.key` 文件上传至指定位置;通常建议放置于 `/etc/nginx/certificates/` 或其他自定义但易于记忆的地方; - 修改Web Server(Nginx为例) 的配置文件(`/etc/nginx/sites-available/default`) ,加入如下所示的关键指令片段以便开启HTTPS支持: ```nginx server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/certificates/example_com.crt; ssl_certificate_key /etc/nginx/certificates/example_com.key; ... } ``` 上述代码段中 `listen 443 ssl;` 表明此虚拟主机监听的是加密过的HTTP请求即HTTPS协议,默认情况下TCP/IP模型里的第4层传输层使用的正是这个端口号用于建立安全链接[^3]。 最后一步就是重启Nginx使新的改动生效,并通过浏览器访问测试页面查看是否能够正常加载带有绿色锁标志的安全网页版本了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化祛魅官 老Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值