WAMP and Let's Encrypt

Hi,

I try to install a certificate on my site works with WAMP Server (on Windows Server 2012).

But, when I launch "Create a certificate" with let's encrypt windows client on my domain, I have this error (witch "Self-host verification files" option :

[EROR] Unable to activate HttpListener, this may be due to non-Microsoft webserver using port 80
[EROR] Error resolving validation plugin
Autofac.Core.DependencyResolutionException: An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Autofac.Core.Registration.ComponentRegistrationLifetimeDecorator ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = SelfHosting (DelegateActivator), Services = [LetsEncrypt.ACME.Simple.Plugins.ValidationPlugins.Http.SelfHosting], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = None, Ownership = ExternallyOwned ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = SelfHosting (ReflectionActivator), Services = [LetsEncrypt.ACME.Simple.Plugins.ValidationPlugins.Http.SelfHosting], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = None, Ownership = OwnedByLifetimeScope ---> An exception was thrown while invoking the constructor 'Void .ctor(LetsEncrypt.ACME.Simple.ScheduledRenewal, LetsEncrypt.ACME.Simple.Target, System.String, LetsEncrypt.ACME.Simple.Services.ILogService, LetsEncrypt.ACME.Simple.Services.IInputService, LetsEncrypt.ACME.Simple.Services.ProxyService)' on type 'SelfHosting'. ---> Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus (See inner exception for details.) (See inner exception for details.) (See inner exception for details.) (See inner exception for details.) ---> Autofac.Core.DependencyResolutionException: An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = SelfHosting (DelegateActivator), Services = [LetsEncrypt.ACME.Simple.Plugins.ValidationPlugins.Http.SelfHosting], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = None, Ownership = ExternallyOwned ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = SelfHosting (ReflectionActivator), Services = [LetsEncrypt.ACME.Simple.Plugins.ValidationPlugins.Http.SelfHosting], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = None, Ownership = OwnedByLifetimeScope ---> An exception was thrown while invoking the constructor 'Void .ctor(LetsEncrypt.ACME.Simple.ScheduledRenewal, LetsEncrypt.ACME.Simple.Target, System.String, LetsEncrypt.ACME.Simple.Services.ILogService, LetsEncrypt.ACME.Simple.Services.IInputService, LetsEncrypt.ACME.Simple.Services.ProxyService)' on type 'SelfHosting'. ---> Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus (See inner exception for details.) (See inner exception for details.) (See inner exception for details.) ---> Autofac.Core.DependencyResolutionException: An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = SelfHosting (ReflectionActivator), Services = [LetsEncrypt.ACME.Simple.Plugins.ValidationPlugins.Http.SelfHosting], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = None, Ownership = OwnedByLifetimeScope ---> An exception was thrown while invoking the constructor 'Void .ctor(LetsEncrypt.ACME.Simple.ScheduledRenewal, LetsEncrypt.ACME.Simple.Target, System.String, LetsEncrypt.ACME.Simple.Services.ILogService, LetsEncrypt.ACME.Simple.Services.IInputService, LetsEncrypt.ACME.Simple.Services.ProxyService)' on type 'SelfHosting'. ---> Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus (See inner exception for details.) (See inner exception for details.) ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(LetsEncrypt.ACME.Simple.ScheduledRenewal, LetsEncrypt.ACME.Simple.Target, System.String, LetsEncrypt.ACME.Simple.Services.ILogService, LetsEncrypt.ACME.Simple.Services.IInputService, LetsEncrypt.ACME.Simple.Services.ProxyService)' on type 'SelfHosting'. ---> Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus (See inner exception for details.) ---> System.Net.HttpListenerException: Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus
Ă  System.Net.HttpListener.AddAllPrefixes()
Ă  System.Net.HttpListener.Start()
Ă  LetsEncrypt.ACME.Simple.Plugins.ValidationPlugins.Http.SelfHosting..ctor(ScheduledRenewal renewal, Target target, String identifier, ILogService log, IInputService input, ProxyService proxy)
Ă  lambda_method(Closure , Object )
Ă  Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()
--- Fin de la trace de la pile d'exception interne ---
Ă  Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()
Ă  Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable1 parameters) Ă  Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1 parameters)
--- Fin de la trace de la pile d'exception interne ---
Ă  Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1 parameters) Ă  Autofac.Core.Resolving.InstanceLookup.Execute() Ă  Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable1 parameters)
Ă  Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable1 parameters) Ă  Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1 parameters)
--- Fin de la trace de la pile d'exception interne ---
Ă  Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1 parameters) Ă  Autofac.Core.Resolving.InstanceLookup.Execute() Ă  Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable1 parameters)
Ă  Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance) Ă  Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable1 parameters)
Ă  Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, Parameter parameters)
Ă  LetsEncrypt.ACME.Simple.AutofacBuilder.<>c__DisplayClass2_0.b__1(IComponentContext c)
Ă  Autofac.Builder.RegistrationBuilder.<>c__DisplayClass0_01.<ForDelegate>b__0(IComponentContext c, IEnumerable1 p)
Ă  Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable1 parameters) Ă  Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1 parameters)
--- Fin de la trace de la pile d'exception interne ---
Ă  Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1 parameters) Ă  Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func1 creator)
Ă  Autofac.Core.Resolving.InstanceLookup.Execute()
Ă  Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable1 parameters) Ă  Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable1 parameters)
Ă  Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance) Ă  Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable1 parameters)
Ă  Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context, IEnumerable`1 parameters)
Ă  LetsEncrypt.ACME.Simple.Program.Authorize(ILifetimeScope renewalScope, Target target)
[EROR] Validation plugin not found or not created.
[EROR] Create certificate failed

I understand that the client wait for IIS Server to generate certificate ?

Thank you for your help.

Hi @Goody

then you must use another client. Looks like that LetsEncrypt.ACME.Simple expects a running IIS and doesn't support a WAMP-environment.

Check the list of clients to find another client.

Thanks for you reply. But, I don’t find any client for WAMP on Windows Server environement.

There is only client for Apache on Linux/Unix environment or for IIS on MS environment.

That's possible, I don't know it. Looks like nobody want's to develop a client, this environment is too rare.

1 Like

If no software application exists, you might always use a webbased client.

For example:

Unfortunately, these clients are removed from the list mentioned earlier, because according to Let’s Encrypt those manual clients are against the goal of Let’s Encrypt, which includes fully automated certificate management. They refuse to consider situations in which this isn’t possible.

1 Like

ZeroSSL has a client for Windows environment for example - it can retrieve the certificate for your Apache or IIS (via -export-pfx option) just fine. Please note that it will get you the certificate, but it will not try to automatically install it for you (in case you need that too).

1 Like

Thanks guys for your help.

So, I turn on ZeroSSL et SSLforfree solution to see how I can implement an SSL certificate on my website.

I’ll do a feedback after that.

I generate a SSL certificate with SSLForFree by domain verification and I downloaded the certificates (.crt, .key) and copied on the right directory of my WAMP installation (for me : C:\wamp64\bin\apache\apache2.4.39\conf\ssl), it’s works fine.

Thanks for your precious help.

1 Like

Happy to read that it had worked.

But: Letsencrypt certificates are only 90 days valid. So you have to do that every 60 - 85 days.

Yes, I notice that.

I’ll search a solution to automate the renewal of my certificate to avoid to do manually renew.

If someone knows how, I take :slight_smile:

Example of such automation: https://interworks.com/blog/trhymer/2018/08/30/protect-tableau-server-for-free-with-lets-encrypt-windows/ (for Tableau Server, but the renewal and scheduling described can be adjusted for Apache just fine).

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.