申请免费的国产泛域名证书

1. 申请免费泛域名证书

云服务商提供的免费证书一般都是单独域名证书,对于泛域名(也可以称为子域名、通配符域名)支持的较少。如果想要使用免费的泛域名,则需要付费购买或者使用Let’s Encrypt等来进行申请。在这里我使用joyssl国产证书来申请免费的泛域名证书。官方地址为:https://www.joyssl.com/

首先需要扫码然后登录,这里不再详述。登录完成后,选择标题栏的SSL证书,然后选择永久免费版

image-20230227184247863

页面下拉后,就可以找到永久免费版通配符证书,然后点击下单

image-20230227184333070

再然后选择加入购物车后,点击结账

image-20230227184411681

然后就需要开始填写对应的信息

image-20230227184708842

接下来填写个人信息

image-20230227184757921

继续下一步

image-20230227184856721

最后需要进行验证操作,也就是需要到域名解析配置的地方,自行添加一个解析配置

image-20230227185020031

这里以腾讯云的解析为例,记录类型改为CNAME,复制主机记录粘贴到解析的主机记录中,复制记录值填写到解析的记录值当中,而后点击确认。配置完毕后,回到joyssl的页面,选择点击验证,验证通过后,就可以等待签发。

image-20230227185132834

证书签发成功后,就可以从证书管理中看到了。

image-20230227185557939

点击下载对应的证书,将开始下载对应的文件,这里要说一下joyssl做的比较好的地方,压缩包解压后可以得到对应的帮助文档和证书文档,而不管是帮助文档还是证书文档,都有多种web服务器对应的认证文件及说明。

image-20230227190141962

像是Apache,目录中提供了ca-bundle、crt、key文件;Nginx目录中提供了key、crt文件;而Tomcat提供了jks、key、密码文件等。这样就极大方便了我们接下来的配置操作。

2. nginx配置证书

因为我使用的是nginx,这里就以nginx配置nginx证书作为示例。

2.1 将对应的文件上传到服务器中

在这里我直接从nginx的安装目录中(/usr/local/nginx)路径下创建一个目录cert,然后将nginx目录下的crt文件和key文件上传到目录中

image-20230227191639131

2.2 修改nginx配置

而后修改nginx的配置文件(我这里的配置文件路径是/usr/local/nginx/conf/nginx.conf,大家需要根据自己实际情况找到对应的配置文件),配置上SSL证书。这里需要注意,nginx版本为1.15.0之前的语法是listen 443和ssl on,nginx版本为1.15.0之后的使用listen 443 ssl。

server {
     # SSL 默认访问端口号为 443
     listen 443 ssl; 
     # 需要绑定证书的域名
     server_name 修改为证书绑定的域名; 
     # 证书文件的相对路径或绝对路径
     ssl_certificate 上传到服务器的crt文件全路径; 
     # 私钥文件的相对路径或绝对路径
     ssl_certificate_key 上传到服务器的key文件全路径; 
     ssl_session_timeout 5m;
     # 配置加密套件
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC; 
     # 使用以下协议进行配置
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_prefer_server_ciphers on;
     location / {
         # 写和80端口一样的配置即可,例如之前监听80的server配置中是进行的反向代理,那么从这里也一样配置相同的即可
         proxy_pass http://127.0.0.1:8090;
     }
 }

编写完成后,先检测配置是否无误,如果没有问题就加载配置。

image-20230227192843091

显示没有错误,接下来加载配置

../sbin/nginx -s reload

刷新页面,原本是通过非https方式访问的,浏览器会提示不安全

image-20230227193121633

接下来我把http://www.xxx 这种的改为 https://www.xxx ,就可以看到变成了一把小锁,且点击后有对应的证书了

image-20230227193231056

image-20230227193244471

2.3 实现原本的http链接自动跳转为https

一般来说,如果想要实现从http直接向https跳转,可以有以下几种方式:

  • 在页面中添加 JS 脚本。
  • 在后端程序中添加重定向。
  • 通过Web服务器实现跳转。
  • nginx支持rewrite功能。如果编译nginx的时候没有去掉 pcre,就可以从server中增加return 301 https:// h o s t host hostrequest_uri,就可以把默认80端口的请求重定向为https

在这里,我就使用nginx的rewrite来进行实现。我把原来的指向80的跳转链接指向https

例如原本监听80端口的配置如下
server {
    listen 80;
    server_name 对应的域名; 
    location / {
        proxy_pass http://127.0.0.1:8090;
    }
}
改为以下即可
server {
    listen 80;
    server_name 对应的域名;
    location / {
        return 301 https://$host$request_uri;
    }
}

重新加载配置后,就可以发现访问http://xxx的时候会自动跳转为https了。

猜你喜欢

转载自blog.csdn.net/guo_ridgepole/article/details/129473299