oracle / oracle/oci-cli

Load balancer listener update uses default SSL parameters instead of existing

Open
#1,095 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
669
Forks
236
Avg merge
1m
Merged PRs (30d)
4

Description

Using oci lb listener update has undocumented side effects if any of the optional parameters which modify the SSL config don't specify the SSL config in its entirety. For example, one would expect that you could simply update and existing LB listener to use a different certificate by specifying the --ssl-certificate-name parameter. However, doing so causes the --protocols option to default to TLS1.2 instead of using the listener's existing value - the same applies with the other options such as hostnames. None of this is documented so you are left guessing which optional parameters might have unintended side-effects / cause failures.

In my case, all my configured HTTPS listeners on port 443 accept TLS1.2 and TLS1.3, so if I try to update the certificate using just the associated parameter it fails with:
"Not all SSL virtual listeners on port 443 have the same set of SSL protocols defined."
This is because it has now decided to also try and update the protocols to it's default value of just TLS1.2.

Could the command not just apply the new specified values and persist values already defined by the listener. If not, the documenation needs updating so that an end-user has some chance of knowing which optional params affect others.

On that note, why is --protocols not --ssl-protocols

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing oci lb listener update with only --ssl-certificate-name on a listener that has custom TLS protocols, then trace the listener-update command's SSL option handling. Done means unspecified SSL settings remain unchanged, or the documentation clearly identifies the dependent defaults and explains the --protocols name.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, cloud
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.