As a follow-up, I also tried configuring the tentacle agent to work in a polling mode vs. listener mode. The agent configure script got the following error:
Checking connectivity on the server communications port 10943…
===============================================================================
The SSL connection could not be established, see inner exception. Authentication failed, see inner exception.
System.Net.WebException
at System.Net.HttpWebRequest.GetResponse()
at Octopus.Tentacle.Communications.OctopusServerChecker.<>c__DisplayClass2_0.b__1() in OctopusServerChecker.cs:line 48
at Octopus.Tentacle.Communications.OctopusServerChecker.Retry(Action action, Int32 retryCount, TimeSpan initalDelay, Double backOffFactor) in OctopusServerChecker.cs:line 85
at Octopus.Tentacle.Communications.OctopusServerChecker.CheckServerCommunicationsIsOpen(Uri serverAddress, IWebProxy proxyOverride) in OctopusServerChecker.cs:line 73
at Octopus.Tentacle.Commands.RegisterMachineCommandBase1.StartAsync() at Octopus.Tentacle.Commands.RegisterMachineCommandBase
1.Start() in RegisterMachineCommandBase.cs:line 80
at Octopus.Shared.Startup.AbstractCommand.Start(String commandLineArguments, ICommandRuntime commandRuntime, OptionSet commonOptions)
at Octopus.Shared.Startup.ConsoleHost.Run(Action`1 start, Action shutdown)
at Octopus.Shared.Startup.OctopusProgram.Run()
–Inner Exception–
The SSL connection could not be established, see inner exception.
System.Net.Http.HttpRequestException
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
at System.Threading.Tasks.ValueTask1.get_Result() at System.Net.Http.HttpConnectionPool.CreateConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Threading.Tasks.ValueTask
1.get_Result()
at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync(ValueTask1 creationTask) at System.Threading.Tasks.ValueTask
1.get_Result()
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at System.Net.HttpWebRequest.SendRequest()
at System.Net.HttpWebRequest.GetResponse()
–Inner Exception–
Authentication failed, see inner exception.
System.Security.Authentication.AuthenticationException
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.SslStream.BeginAuthenticateAsClient(SslClientAuthenticationOptions sslClientAuthenticationOptions, CancellationToken cancellationToken, AsyncCallback asyncCallback, Object asyncState)
at System.Net.Security.SslStream.<>c.b__47_0(SslClientAuthenticationOptions arg1, CancellationToken arg2, AsyncCallback callback, Object state)
at System.Threading.Tasks.TaskFactory1.FromAsyncImpl[TArg1,TArg2](Func
5 beginMethod, Func2 endFunction, Action
1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions)
at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func5 beginMethod, Action
1 endMethod, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions)
at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func5 beginMethod, Action
1 endMethod, TArg1 arg1, TArg2 arg2, Object state)
at System.Net.Security.SslStream.AuthenticateAsClientAsync(SslClientAuthenticationOptions sslClientAuthenticationOptions, CancellationToken cancellationToken)
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
–Inner Exception–
The type initializer for ‘SslMethods’ threw an exception.
System.TypeInitializationException
at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, SslAuthenticationOptions sslAuthenticationOptions)
at System.Net.Security.SafeDeleteSslContext…ctor(SafeFreeSslCredentials credential, SslAuthenticationOptions sslAuthenticationOptions)
at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, SslAuthenticationOptions sslAuthenticationOptions)
–Inner Exception–
The type initializer for ‘Ssl’ threw an exception.
System.TypeInitializationException
at Interop.Ssl.SslV2_3Method()
at Interop.Ssl.SslMethods…cctor()
–Inner Exception–
The type initializer for ‘SslInitializer’ threw an exception.
System.TypeInitializationException
at Interop.Ssl…cctor()
–Inner Exception–
error:25070067:DSO support routines:DSO_load:could not load the shared library
Interop+Crypto+OpenSslCryptographicException
at Interop.SslInitializer…cctor()
The tail end of the above output indicates a shared object library related to openssl is missing. Not sure which one it’s looking for, however.