Reputation: 4860
I am trying to configure one of the TargetServers to talk HTTPS to the backend service. Per Apigee's official documentation as well as other sources, it should be as easy as adding SSLInfo
node to the TargetServer definition, and in that node set "enabled" : true
. I am sending a PUT
call to accomplish just that, but the response comes back without SSLInfo
node. Following up with GET
confirms that SSLInfo
node is not there.
Request (redacted)
PUT /v1/organizations/---/environments/---/targetservers/Services HTTP/1.1
Host: ---
Content-Type: application/json
Authorization: Basic ---
Cache-Control: no-cache
{
"name" : "Services",
"host" : "---",
"isEnabled" : true,
"port" : 443,
"SSLInfo": {
"enabled": true
}
}
With Response (redacted), and same if followed up with GET
{
"host": "qa-services.ignitionone.com",
"isEnabled": true,
"name": "Services",
"port": 443
}
As you can see, the SSLInfo
just doesn't stick, and thus fails to enable Edge-to-Target HTTPS communication.
What am I missing?
Upvotes: 1
Views: 395
Reputation: 4860
Ok, the issue turned out to be JSON serializer being very case-sensitive. It is not "SSLInfo"
but rather MUST be "sSLInfo"
. It started working after making the capitalization change.
So full structure that worked:
PUT /v1/organizations/---/environments/---/targetservers/Services HTTP/1.1
Host: ---
Content-Type: application/json
Authorization: Basic ---
Cache-Control: no-cache
{
"name" : "Services",
"host" : "---",
"isEnabled" : true,
"port" : 443,
"sSLInfo": {
"enabled": true
}
}
Upvotes: 1