Skip to content

[Bug]: Exception after pruning CRL #202

@saz

Description

@saz

Is this a critical security issue?

  • This is not a security issue.

Describe the Bug

The following command was executed after stopping openvox-server:

puppetserver ca prune --remove-expired

Trying to start the service again wasn't working, due to this exception:

java.security.cert.CRLException: not enough content
        at java.base/sun.security.x509.CRLExtensions.parseExtension(CRLExtensions.java:128)
        at java.base/sun.security.x509.CRLExtensions.init(CRLExtensions.java:100)
        at java.base/sun.security.x509.CRLExtensions.<init>(CRLExtensions.java:81)
        at java.base/sun.security.x509.X509CRLImpl$TBSCertList.<init>(X509CRLImpl.java:259)
        at java.base/sun.security.x509.X509CRLImpl.parse(X509CRLImpl.java:1164)
        at java.base/sun.security.x509.X509CRLImpl.<init>(X509CRLImpl.java:380)
        at java.base/sun.security.provider.X509Factory.parseX509orPKCS7CRL(X509Factory.java:527)
        at java.base/sun.security.provider.X509Factory.engineGenerateCRLs(X509Factory.java:424)
        at java.base/java.security.cert.CertificateFactory.generateCRLs(CertificateFactory.java:553)
        at org.eclipse.jetty.util.security.CertificateUtils.loadCRL(CertificateUtils.java:66)
        at org.eclipse.jetty.util.ssl.SslContextFactory.loadCRL(SslContextFactory.java:1157)
        at com.puppetlabs.trapperkeeper.services.webserver.jetty10.utils.InternalSslContextFactory.loadCRL(InternalSslContextFactory.java:30)
        at org.eclipse.jetty.util.ssl.SslContextFactory.load(SslContextFactory.java:295)
        at org.eclipse.jetty.util.ssl.SslContextFactory.doStart(SslContextFactory.java:213)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
        at org.eclipse.jetty.server.SslConnectionFactory.doStart(SslConnectionFactory.java:112)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
        at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:367)
        at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:75)
        at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:228)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.server.Server.doStart(Server.java:428)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:196)
        at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:159)
        at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:467)
        at puppetlabs.trapperkeeper.services.webserver.jetty10_core$fn__30211$start_webserver_BANG___30216$fn__30217$fn__30218.invoke(jetty10_core.clj:788)
        at puppetlabs.trapperkeeper.services.webserver.jetty10_core$fn__30211$start_webserver_BANG___30216$fn__30217.invoke(jetty10_core.clj:787)
        at puppetlabs.trapperkeeper.services.webserver.jetty10_core$fn__30211$start_webserver_BANG___30216.invoke(jetty10_core.clj:780)
        at puppetlabs.trapperkeeper.services.webserver.jetty10_core$start_server_single_default.invokeStatic(jetty10_core.clj:1037)
        at puppetlabs.trapperkeeper.services.webserver.jetty10_core$start_server_single_default.invoke(jetty10_core.clj:1034)
        at puppetlabs.trapperkeeper.services.webserver.jetty10_core$fn__30679$start_BANG___30684$fn__30685.invoke(jetty10_core.clj:1137)
        at puppetlabs.trapperkeeper.services.webserver.jetty10_core$fn__30679$start_BANG___30684.invoke(jetty10_core.clj:1132)
        at puppetlabs.trapperkeeper.services.webserver.jetty10_service$reify__31079$service_fnk__5265__auto___positional$reify__31086.start(jetty10_service.clj:53)
        at puppetlabs.trapperkeeper.services$fn__5115$G__5083__5118.invoke(services.clj:7)
        at puppetlabs.trapperkeeper.services$fn__5115$G__5082__5122.invoke(services.clj:7)
        at puppetlabs.trapperkeeper.internal$fn__14305$run_lifecycle_fn_BANG___14312$fn__14313.invoke(internal.clj:242)
        at puppetlabs.trapperkeeper.internal$fn__14305$run_lifecycle_fn_BANG___14312.invoke(internal.clj:225)
        at puppetlabs.trapperkeeper.internal$fn__14335$run_lifecycle_fns__14340$fn__14341.invoke(internal.clj:275)
        at puppetlabs.trapperkeeper.internal$fn__14335$run_lifecycle_fns__14340.invoke(internal.clj:252)
        at puppetlabs.trapperkeeper.internal$fn__14970$build_app_STAR___14979$fn$reify__14991.start(internal.clj:663)
        at puppetlabs.trapperkeeper.internal$fn__15021$boot_services_for_app_STAR__STAR___15028$fn__15029$fn__15031.invoke(internal.clj:699)
        at puppetlabs.trapperkeeper.internal$fn__15021$boot_services_for_app_STAR__STAR___15028$fn__15029.invoke(internal.clj:697)
        at puppetlabs.trapperkeeper.internal$fn__15021$boot_services_for_app_STAR__STAR___15028.invoke(internal.clj:691)
        at clojure.core$partial$fn__5931.invoke(core.clj:2647)
        at puppetlabs.trapperkeeper.internal$fn__14381$initialize_lifecycle_worker__14392$fn__14393$fn__14556$state_machine__11619__auto____14581$fn__14584.invoke(internal.clj:295)
        at puppetlabs.trapperkeeper.internal$fn__14381$initialize_lifecycle_worker__14392$fn__14393$fn__14556$state_machine__11619__auto____14581.invoke(internal.clj:295)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc_macros.clj:58)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macros.clj:57)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeStatic(ioc_macros.clj:62)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:60)
        at clojure.core.async$ioc_alts_BANG_$fn__11851.invoke(async.clj:453)
        at clojure.core.async$do_alts$fn__11786$fn__11789.invoke(async.clj:320)
        at clojure.core.async.impl.channels$appm$fn__6412.invoke(channels.clj:36)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)

Expected Behavior

Getting rid of expired things within the CRL, without preventing openvox-server from starting again

Steps to Reproduce

systemctl stop puppetserver
puppetserver ca prune --remove-expired
systemctl start puppetserver

Environment

Package: openvox-server
Version: 8.12.1-1+ubuntu22.04

Additional Context

No response

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions