nginx 泛域名,nginx 文件配置 如何设置域名

阅读(124)发布于 2023-09-25

nginx中怎么配置泛域名指向呢 这个简单。在nginx中,server域中的server_name指令可以采用完整的精确匹配、正则表达式匹配、通配符匹配的形式。而pem/crt则是apache、nginx、openssl可识别的证书。结尾,内容是BASE64编码,Nginx和Apache偏向于使用。

配图

这个简单。在nginx中,server域中的server_name指令可以采用完整的精确匹配、正则表达式匹配、通配符匹配的形式。

一般而言,匹配的过程为:

1.精确匹配,比如www.xxx.com;

2.以*通配符开始的最长的通配符匹配,比如*.xxx.com;

3.以*通配符结束的最长的通配符匹配,比如www.xxx.*;

4.第一次匹配成功的正则表达式;比如~^xxx

因此此处有两种配置方式,一种是使用通配符,另一种是采用正则表达式:

法一:

server{

#...

server_name*.xxx.com;

#...

}

法二:

server{

#...

server_name~^xxx;

#...

}

原理:一个nginx可以再配置文件中使用导出的变量。其中$host变量就是指的Y.XXX.com,因此直接使用$host变量就可以了。如下,就可以使用一个server把所有的请求指定到不同的目录下。

实现方法:

http{

#...

server{

listen80;

server_name$host;#在server_name中使用$host而不用自己去一个一个绑定了。

#...

location/{

#根目录为$host,$PATH为$host所在的目录。

root$PATH/$host;

#....

}

}

本博客针对的是泛域名证书申请(三个月)以及申请后的证书格式转换。申请的证书只有三个月有效期,到期可以续期。泛域名证书会包含一个主域名以及其所有的二级域名,或者某个二级域名对应的所有三级子域名,如:example.com以及.example.com或者xxx.example.com与.xxx.example.com。

如果你只是想要一个单域名证书,可以选择华为或阿里提供的证书服务(1年)。以华为为例:在证书管理中–购买证书类型(DVBasic)–证书品牌(DigiCert)–证书类型(单域名证书);接着在证书列表里点击”申请证书”绑定你的域名,绑定过程中需要你添加一条TXT解析记录,用于域名所有权的验证。单域名的申请此处不做详细介绍。

找一台linux系统的主机,在上面执行:

该脚本需要访问github,由于国内的网络原因,可能需要执行多次才能成功,直到执行结果出现,如下图所示表示成功:

安装完后执行以下脚本申请证书:

执行后会拿到两条Domain&TXTvalue,将其添加到你的域名TXT解析中。

两条TXT解析添加完成后,将acme.sh脚本再次执行,这次在脚本后添加--renew参数:

申请完成的证书放置在~/.acme.sh/example.com/目录下:

申请完成后将证书配置到nginx服务:

在nginx.conf中配置启用ssl

在工作中经常会遇到的两类证书:jks与(pem/crt)。jks是JAVAKeyStore缩写,可以被java/tomcat等可识别的证书。而pem/crt则是apache、nginx、openssl可识别的证书。很多时候需要在两种格式之间转换。

需要用到epenssl以及java自带的keytool工具:

example.com.jks就是我们想要的能被java直接识别的证书啦~

将上面的段落另外为jks2crt.sh,并授予执行权限,chmod+xjks2crt.sh

./jks2crt.sh[证书路径][证书自定义密码]

其他证书格式

PEM–PrivacyEnhancedMail,打开看文本格式,以”—–BEGIN…”开头,“—–END…”结尾,内容是BASE64编码,Nginx和Apache偏向于使用。

DER–DistinguishedEncodingRules,打开看是二进制格式,不可读,Java和Windows偏向于使用

CRT–CRT应该是certificate的三个字母,其实还是证书的意思,常见于类UNIX系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码,可读的(cat)。

CER–还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码。

前言:

这里我自己从官方克隆了一版到自己的git平台汉化了一下说明,这里简单介绍一下我个人的配置,详细文档可到https://git.liukaiming.com/18059662215/acme查看我的汉化文档.

前置条件:

一.备案域名二.已经做好dns解析.

1.执行安装

gitclonehttps://git.liukaiming.com/18059662215/acme.git

cd./acme.sh

./acme.sh--install

安装后,必须关闭当前终端,然后重新打开以使别名生效。

查看版本:

acme.sh-h

2.获取域名供应商API(这区取用了acme的其中一种方法,api访问更新解析)

因为本人用的华为云,而acme里面的dnsapi里面没有关于华为云的shell脚本,所以我这么懒的人,直接把原华为云域名的供应商解析换成阿里云,阿里云的个人API在阿里云登录后进入控制台->右上角头像->AccessKey管理点击进入

如下图:

进入没有东西的话自己新建一个,可以看到有两个参数accesskey和accesssecret

如下图:

至于说怎么变更CDN服务商,在域名解析那里可以看到阿里云的cdn解析地址,更换一下cdn服务商地址就好,一般7个小时以内就可以更换完成,不过国内cdn服务商地址更换没那么久,正常一个小时以内更换,挺快的.

3.接下来就是生成证书了

一.先把阿里云的环境变量更新上去

exportAli_Key="上面申请到的accesskey"

exportAli_Secret="上面申请到的accesssecret"

二.生成证书,这里我直接用了自己的泛域名解析(修改为你们要解析的域名)

acme.sh--issue--dnsdns_ali-d*.liukaiming.com

三.接下来,证书愉快的生成成功了.有失败的话检查一下上面的步骤是否出错.

没有问题的话最后会输出如下的代码,这里已经成功了

-----ENDCERTIFICATE-----

[WedDec1815:19:30CST2019]Yourcertisin/root/.acme.sh/*.liukaiming.com/*.liukaiming.com.cer

[WedDec1815:19:30CST2019]Yourcertkeyisin/root/.acme.sh/*.liukaiming.com/*.liukaiming.com.key

[WedDec1815:19:30CST2019]TheintermediateCAcertisin/root/.acme.sh/*.liukaiming.com/ca.cer

[WedDec1815:19:30CST2019]Andthefullchaincertsisthere:/root/.acme.sh/*.liukaiming.com/fullchain.cer

4.部署(在nginx上),其他部署可以参考我git上的文档.

server

{

listen443sslhttp2;

server_namewww.liukaiming.com;

indexindex.phpindex.htmlindex.htmdefault.phpdefault.htmdefault.html;

root/***/***;

#SSL-STARTSSL相关配置,请勿删除或修改下一行带注释的404规则

#error_page404/404.html;

ssl_certificate/root/.acme.sh/*.liukaiming.com/*.liukaiming.com.cer;

ssl_certificate_key/root/.acme.sh/*.liukaiming.com/*.liukaiming.com.key;

ssl_protocolsTLSv1.1TLSv1.2TLSv1.3;

ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

ssl_prefer_server_cipherson;

ssl_session_cacheshared:SSL:10m;

ssl_session_timeout10m;

}

这里在配置上换成我们上方给我们的信息.

到这里基本就配置完成了.

5.关于证书自动更新

证书的有效期为90天,目前证书在60天以后会通过定时任务自动更新,你无需任何操作。

今后有可能会缩短这个时间,不过都是自动的,你不用关心.

5.2acme.sh更新

目前由于acme协议和letsencryptCA都在频繁的更新,因此acme.sh也经常更新以保持同步.

升级acme.sh到最新版:

acme.sh--upgrade

如果你不想手动升级,可以开启自动升级:

acme.sh--upgrade--auto-upgrade

之后,acme.sh就会自动保持更新了.

你也可以随时关闭自动更新:

acme.sh--upgrade--auto-upgrade0

6.个人网站链接:

博客地址:https://liukaiming.com或者https://blog.liukaiming.com

git地址:https://git.liukaiming.com/18059662215/acme

文档地址:https://doc.liukaiming.com

原文地址:https://liukaiming.com/175.html有代码高亮,看的比较舒服

以上就是关于nginx 泛域名的解答,如果对你有帮助,不妨关注本站,本站将为你整理更多内容。