2

利用云服务提供商的免费证书,在服务器上发布https前端应用和WebAPI的应用 - 伍华聪

 1 year ago
source link: https://www.cnblogs.com/wuhuacong/p/16965661.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我们如果要在服务器上发布https前端应用和WebAPI的应用,那么我们就需要用到https证书了。我们一般发布的应用的云服务器上,都会提供一定量的相关的免费证书(一般为20个)供我们使用,每个一年期限,到期再续即可,一般情况下基本上满足要求了,本篇随笔介绍如何基于云服务提供商的免费证书,在服务器上发布Nginx的前端应用和基于IIS的Web API接口的https应用处理。

1、申请免费证书

如阿里云和腾讯云,他们云服务器管理控制台上,都可以找到对应免费https的SSL证书申请的入口,如下所示。

8867-20221208112859850-811204332.png
8867-20221208112953958-1821648030.png

 在申请界面上,填入所需的域名,以及相关信息就可以发起申请了,申请后等待一点时间就会成功了,如阿里云的申请界面如下。

8867-20221208113309691-28556788.png

而腾讯云上的申请入口也是类似,如下界面所示。

8867-20221208113424444-513170846.png

  申请成功后,在列表中就可以看到下载SSL证书的信息了。如下所示。

8867-20221208113600016-486548700.png

 在下载界面上,我们可以看到不同部署服务器上的不同证书下载入口,选择我们具体的(如这里用到了Nginx和IIS的SSL证书文件)

8867-20221208113724493-1530156381.png

 我们选择所需的证书文件下载下来备用即可。下面会继续介绍IIS证书的安装和使用,以及Nginx的证书文件处理实现https的应用和接口服务。 

2、发布基于IIS的Web API的https应用接口

 如我们先下载IIS的证书文件,我们可以看到除了证书文件,还有一个附带的文本文件,是证书的密码信息。

8867-20221208114324764-990655569.png

 我们双击进行证书的安装,选择本地计算机的存储位置即可。

8867-20221208114450698-1419259740.png

  然后输入所需的证书密码,完成安装就可以了。

8867-20221208114544479-568288.png

  发布一个IIS的Web API应用,然后在右键进行端口的绑定处理,设置绑定的为https,指定端口,并指定具体的SSL证书就是了,如下所示。

8867-20221208115329178-690428815.png

 绑定的界面如下所示。

8867-20221208114838177-1401719336.png

 这样IIS的服务器端的Web API就可以使用https的协议了。 

3、发布Nginx的前端应用

我们的前端是基于Vue的应用的,因此应用发布后,使用Nginx发布前端应用更为方便,因此这里介绍使用SSL免费证书在服务器上发布Nginx的前端应用,以便使用https协议访问。

前面我们提到了在申请完免费的SSL证书后,下载对应的Nginx的SSL证书文件。

8867-20221208113724493-1530156381.png

基于Nginx的SSL证书设置,有两种方式,一种是创建一个ssl.conf文件,设置ssl.conf的方式指定对应的证书信息,如下所示。

#ssl.conf文件内容

server { 
    listen 8080 ssl http2; 
    server_name localhost; 
    ssl_certificate C:/WebRoot/nginx/conf/ssl/www.iqidi.com_bundle.crt; 
    ssl_certificate_key C:/WebRoot/nginx/conf/ssl/www.iqidi.com.key;
    #先配置签名证书,再配置加密证书,签名加密证书私钥 key 为同一个!
    ssl_session_timeout 5m; 
    ssl_protocols TLSv1.2;
    ssl_ciphers SM2-WITH-SMS4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL; 
    ssl_prefer_server_ciphers on;
    location / { 
            root   html/CollectDataApp;
            index index.html index.htm; 
        } 
} 

这样我们在conf/nginx.conf 文件中设置端口侦听,就可以了

    server {
        listen       8080 ssl;
        server_name  localhost;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
            root   html/CollectDataApp;
            index  index.html index.htm;        
            
            try_files $uri $uri/ /index.html =404;                    
        }
    }

如果是不想独立分开两个配置文件,也可以把SSL证书位置信息写在conf/nginx.conf 文件中,也是可以的,如下所示。

    server {
        listen       9002 ssl;
        server_name  localhost;
        ssl_certificate C:/WebRoot/nginx/conf/ssl/www.iqidi.com_bundle.crt; 
        ssl_certificate_key C:/WebRoot/nginx/conf/ssl/www.iqidi.com.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
            root   html/AssetCheckApp;
            index  index.html index.htm;            
            
            try_files $uri $uri/ /index.html =404;                    
        }
    }

这样就合并了SSL设置和端口侦听的文件在一起,测试后正常使用了。

以上就是关于利用云服务提供商的免费证书,在服务器上发布https前端应用和WebAPI的应用的整个过程,证书解决了,根据不同的应用服务器,设置好对应的方式就可以实现https应用了。

一旦我们完成了免费证书的申请、下载,那么在服务器上不同端口的应用,都可以使用这个证书作为SSL证书,从而实现多个不同应用端口上公用一个SSL证书了,因为证书对应的是一个相同域名的,因此可以正常使用。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK