Azure AppGateway  证书问题


最近处理一个应用程序网关的工单,突发其想,后端池中的两台计算机可否一台Windows,另外一台Linux。网上搜罗一番,还真可以。其实核心点在于证书格式不同:

 

Windows :  .pfx、.cer

 

Linux:.crt、.key

 

本次实验目标:

以下截图中两台计算机,一台Windows和一台Linux计算机,后端运行状态都为“正常”

image.png

分析这个需求:

两种解决方案:

Linux虚拟机apache使用windows的证书(更多的都是Linux内部配置)

image.png

Ubuntu14.04为例子需要修改,default-ssl.conf

修改以下红框为实际路径

image.png


由于本环境中appgw已经上传了IIS自签名证书,所以需要更换证书。

以后操作使用第二种方法:

第一步生成IIS可用证书

Apache使用的SSL证书是.crt格式,如果你的网站从Apache换到了windows主机的iis上,这个时候要将原来的证书放到iis上使用,是不能够直接使用这个证书的,你首先要将.crt格式的证书转换成.pfx格式:

 

可以通过一句命令在Linux主机上完成转换

 

openssl pkcs12 -export -out ssl2_me.pfx -inkey ssl2_me.key -in ssl2_me.crt

运行命令后,将会提示你输入两次相同的密码,你可以设置一个密码,你在iis上导入证书的时候将会用到。
上面命令中的ssl2_me.crt 替换成你自己的证书文件名, ssl2_me.key替换成你自己的key文件名,ssl2_me.pfx替换成你自己的pfx证书名。

 

image.png

 

还有另外一个方法在线转换crt格式 to pfx格式

https://ssl4less.eu/ssl-tools/convert-certificate.html

 

 

Windows计算机操作

 

·         下载安装openssl 

这里我们直接使用安装包进行安装(也可自己编译),选择对应版本进行下载下载

运行安装程序Win64OpenSSL-1_0_2e.exe,将openssl安装到C:\OpenSSL-Win64

安装完成后,可以在控制台运行如下指令,来测试是否安装成功。 
openssl version

如果返回openssl版本号(”OpenSSL 1.0.2e 3 Dec 2015”),则表示安装成功。

合成.pfx证书

将私钥文件(server.key)和服务器crt证书文件(server.crt ),放到openssl安装目录的bin目录下。

控制台也进到此目录下,然后执行下面指令。 
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

然后再看bin目录下面多了一个server.pfx 文件,即为生成的pfx证书文件。

以上,将pfx导入到IIS后,就可以进行绑定了。

1.       第二步更换appgw证书

  ARM APP GW在门户上不支持更换证书的操作,但是可以使用Azure Powershell更换证书,下面讲述操作步骤


 image.png

2.       Portal验证

 image.png


 

成功完成。