OctopusDeploy / OctopusClients

| Public | Octopus.Client for commanding Octopus servers

Home Page:https://octopus.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

octo behaves incorrectly when using the --ignoreSslErrors switch against a server configured with a self-signed cert

stopthatastronaut opened this issue · comments

From a ticket originally raised by a customer

I run the following command:
docker run --rm octopusdeploy/octo create-release --Project project --deployto env --server=https://server --ignoreSslErrors --apikey API-MYAPIKEY --progress

But I get the follwing error:
Octopus Deploy Command Line Tool, version 4.42.6

The following certificate errors were encountered when establishing the HTTPS connection to the server: RemoteCertificateChainErrors
Certificate subject name: CN=certname

Error repeates itself over and over. So even though I use the --ignoreSslErrors flag it still gives me this error.

The behaviour reproduces cleanly using the Alpine docker image - octo retries the connection repeatedly without success, and eventually fails with statuscode -3. An internal repro has been established.

There is some suggestion that this may be due to an unimplemented feature in .NET Core, judging by some tangentially-related issues found - it seems as though .NET core may not implement ConnectionPolicy.DisableSSLVerification at present. Needs investigation and perhaps a workround.

To reproduce

Establish an Octopus Instance
Add a self-signed cert (or a cert with a mismatched CN would also work)
Turn OFF HSTS
Using an account with appropriate permissions, run the docker command in the root issue report using the latest Alpine image (default)

You should see warning messages repeat over and over, and eventually you may see a -3 exit code. No release will be created. Given the way octo is built, I assume all command would behave similarly