Nginx配置https证书 原创

程序员小杰
发布于 2022-1-26 19:59
浏览
0收藏

春节不停更,此文正在参加「星光计划-春节更帖活动

日积月累,水滴石穿 😄

笔者的服务器是阿里云的。所以本文是基于阿里云申请免费证书,进行配置。

申请免费证书

登录阿里云 -》 打开控制台 - 》 产品与服务 -》搜索 ssl。

Nginx配置https证书-鸿蒙开发者社区

Nginx配置https证书-鸿蒙开发者社区

Nginx配置https证书-鸿蒙开发者社区

购买之后再回到之前的页面,点击创建证书。

Nginx配置https证书-鸿蒙开发者社区
然后进行证书申请!填写要绑定的域名、个人信息

Nginx配置https证书-鸿蒙开发者社区
填写完成后,会进入到验证信息。如下图:

Nginx配置https证书-鸿蒙开发者社区

验证通过后,提交审核。审核通过如下:

Nginx配置https证书-鸿蒙开发者社区

点击下载按钮。会打开具体部署方式的证书。然后选择对应的下载就可以。

Nginx配置https证书-鸿蒙开发者社区

小杰这边用的是 Nginx的方式。进行下载,下载下来是一个压缩包,然后进行解压得到如下两个文件:

Nginx配置https证书-鸿蒙开发者社区

在Nginx服务器上安装证书

执行以下命令,在Nginx安装目录(默认为/usr/local/nginx/conf)下创建一个用于存放证书的目录,将其命名为cert。小杰的Nginx安装目录被我改了。

[root@oot nginx-1.13.7]# cd /usr/java/nginx/nginx-1.13.7/conf
[root@root conf]# mkdir cert

目录创建完成之后,将两个证书文件上传至 cert 目录中。

编辑配置文件

编辑 Nginx 配置文件(nginx.conf),修改与证书相关的配置内容。nginx.conf 默认保存在/usr/local/nginx/conf目录下。如果您修改过 nginx.conf 的位置,请将/usr/local/nginx/conf/nginx.conf替换成修改后的位置。

小杰的配置文件在/etc/nginx/目录下。

[root@root nginx]# vim /etc/nginx/nginx.conf 

在配置文件中定位到HTTP协议代码片段(http{})。发现片段中有 include关键字,将 /etc/nginx/conf.d/目录下的所有 .conf 文件进行了引入。
Nginx配置https证书-鸿蒙开发者社区
执行以下命令,打开配置文件,配置文件不存在则会创建

[root@root conf.d]# vim /etc/nginx/conf.d/httpsTest.conf

在文件中加入以下配置

server {
    #配置HTTPS的默认访问端口为443。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
        listen 443 ssl;
        server_name xxx; # 替换成证书绑定的域名
        #root html;
        index index.html index.htm;
        ssl_certificate /usr/java/nginx/nginx-1.13.7/conf/cert/7046276_gongj.top.pem; # 替换成上传的证书文件的名称
        ssl_certificate_key /usr/java/nginx/nginx-1.13.7/conf/cert/7046276_gongj.top.key; # 替换成上传的证书文件的名称
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #表示使用的加密套件的类型。
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
        ssl_prefer_server_ciphers on;
         location / {
          root homePage; #站点目录
          index  index.html;
         }

}

这里为了测试效果,创建了一个homePage目录,目录下有一个名为 index.hmtl文件。注意:homePage 的位置,需要与 nginx.conf 同级,因为我这使用的是相对路径

Nginx配置https证书-鸿蒙开发者社区

index.html 内容如下:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx! HTTPS </title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx! HTTPS </h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx. HTTPS 测试成功</em></p>
</body>
</html>

配置完成之后,执行以下命令进行重启。

#  Nginx服务的可执行目录 /usr/sbin
# reload 刷新配置文件,但如果是新增了配置文件,则该命令失效
# 需要进行重启 nginx
 /usr/sbin/nginx -s reload
 # 重启
 /usr/sbin/nginx -s stop
 # 指定配置文件启动
 /usr/sbin/nginx -c /etc/nginx/nginx.conf

访问 https:gongj.top
Nginx配置https证书-鸿蒙开发者社区

设置HTTP请求自动跳转HTTPS。

我们想在访问 http 页面的时候,能自动跳转到https页面,则需要在跳转的HTTP站点下添加以下rewrite语句。

server {
    listen 80;
    server_name gongj.top;
    rewrite ^(.*)$ https://$host$1;
}

访问:http://gongj.top/

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2022-2-15 10:31:33修改
2
收藏
回复
举报
回复
    相关推荐