Skip to content

Commit c6e135c

Browse files
committed
letsencrypt updates
1 parent e248451 commit c6e135c

File tree

7 files changed

+57
-25
lines changed

7 files changed

+57
-25
lines changed

gateway/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.13.5-alpine3.10
1+
FROM golang:1.15.3-alpine3.12
22
WORKDIR /build
33

44
# Take the current space cloud version as a argument

gateway/go.mod

+5-4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require (
77
github.com/Masterminds/sprig v2.22.0+incompatible
88
github.com/armon/go-metrics v0.3.3 // indirect
99
github.com/aws/aws-sdk-go v1.33.14
10+
github.com/caddyserver/certmagic v0.12.0
1011
github.com/coreos/bbolt v1.3.3 // indirect
1112
github.com/coreos/etcd v3.3.10+incompatible
1213
github.com/coreos/go-semver v0.3.0 // indirect
@@ -21,6 +22,7 @@ require (
2122
github.com/ghodss/yaml v1.0.0
2223
github.com/go-sql-driver/mysql v1.5.0
2324
github.com/gogo/protobuf v1.3.1 // indirect
25+
github.com/golang/snappy v0.0.3 // indirect
2426
github.com/google/go-cmp v0.5.0
2527
github.com/googleapis/gnostic v0.3.1 // indirect
2628
github.com/gorilla/mux v1.7.3
@@ -41,7 +43,6 @@ require (
4143
github.com/lib/pq v1.2.0
4244
github.com/mattn/go-colorable v0.1.2 // indirect
4345
github.com/mattn/go-sqlite3 v1.11.0 // indirect
44-
github.com/mholt/certmagic v0.9.1
4546
github.com/mitchellh/copystructure v1.0.0 // indirect
4647
github.com/mitchellh/mapstructure v1.1.2
4748
github.com/rs/cors v1.7.0
@@ -62,8 +63,8 @@ require (
6263
go.etcd.io/bbolt v1.3.3
6364
go.mongodb.org/mongo-driver v1.1.1
6465
go.uber.org/zap v1.15.0 // indirect
65-
golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4
66-
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0
66+
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de
67+
golang.org/x/net v0.0.0-20200707034311-ab3426394381
6768
google.golang.org/api v0.18.0
6869
gopkg.in/AlecAivazis/survey.v1 v1.8.5
6970
gopkg.in/yaml.v2 v2.2.7 // indirect
@@ -74,4 +75,4 @@ require (
7475

7576
)
7677

77-
go 1.13
78+
go 1.15

gateway/go.sum

+24-2
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce
9494
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
9595
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
9696
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
97+
github.com/caddyserver/certmagic v0.9.1 h1:wPzyouOyE+30NIQETJuhTB5ZQWz+0Hy038vaR5WWQDE=
98+
github.com/caddyserver/certmagic v0.9.1/go.mod h1:nu8jbsbtwK4205EDH/ZUMTKsfYpJA1Q7MKXHfgTihNw=
99+
github.com/caddyserver/certmagic v0.12.0 h1:1f7kxykaJkOVVpXJ8ZrC6RAO5F6+kKm9U7dBFbLNeug=
100+
github.com/caddyserver/certmagic v0.12.0/go.mod h1:tr26xh+9fY5dN0J6IPAlMj07qpog22PJKa7Nw7j835U=
97101
github.com/cenkalti/backoff/v3 v3.0.0 h1:ske+9nBpD9qZsTBoF41nW5L+AIuFBKMeze18XQ3eG1c=
98102
github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
99103
github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@@ -210,6 +214,8 @@ github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I
210214
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
211215
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w=
212216
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
217+
github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
218+
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
213219
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw=
214220
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
215221
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
@@ -343,6 +349,8 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL
343349
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
344350
github.com/klauspost/cpuid v1.2.0 h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE=
345351
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
352+
github.com/klauspost/cpuid v1.2.5 h1:VBd9MyVIiJHzzgnrLQG5Bcv75H4YaWrlKqWHjurxCGo=
353+
github.com/klauspost/cpuid v1.2.5/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4=
346354
github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ=
347355
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
348356
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -363,6 +371,8 @@ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
363371
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
364372
github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0=
365373
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
374+
github.com/libdns/libdns v0.1.0 h1:0ctCOrVJsVzj53mop1angHp/pE3hmAhP7KiHvR0HD04=
375+
github.com/libdns/libdns v0.1.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40=
366376
github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA=
367377
github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ=
368378
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
@@ -385,12 +395,14 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j
385395
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
386396
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
387397
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
388-
github.com/mholt/certmagic v0.9.1 h1:wPzyouOyE+30NIQETJuhTB5ZQWz+0Hy038vaR5WWQDE=
389-
github.com/mholt/certmagic v0.9.1/go.mod h1:nu8jbsbtwK4205EDH/ZUMTKsfYpJA1Q7MKXHfgTihNw=
398+
github.com/mholt/acmez v0.1.1 h1:KQODCqk+hBn3O7qfCRPj6L96uG65T5BSS95FKNEqtdA=
399+
github.com/mholt/acmez v0.1.1/go.mod h1:8qnn8QA/Ewx8E3ZSsmscqsIjhhpxuy9vqdgbX2ceceM=
390400
github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA=
391401
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
392402
github.com/miekg/dns v1.1.15 h1:CSSIDtllwGLMoA6zjdKnaE6Tx6eVUxQ29LUgGetiDCI=
393403
github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
404+
github.com/miekg/dns v1.1.30 h1:Qww6FseFn8PRfw07jueqIXqodm0JKiiKuK0DeXSqfyo=
405+
github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
394406
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
395407
github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=
396408
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
@@ -593,6 +605,9 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq
593605
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
594606
golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4 h1:4icQlpeqbz3WxfgP6Eq3szTj95KTrlH/CwzBzoxuFd0=
595607
golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
608+
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
609+
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de h1:ikNHVSjEfnvz6sxdSPCaPt572qowuyMDMJLLm3Db3ig=
610+
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
596611
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
597612
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
598613
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -647,6 +662,7 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR
647662
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
648663
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
649664
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
665+
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
650666
golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
651667
golang.org/x/net v0.0.0-20191002035440-2ec189313ef0 h1:2mqDk8w/o6UmeUCu5Qiq2y7iMf6anbx+YA8d1JFoFrs=
652668
golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -658,6 +674,8 @@ golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLL
658674
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
659675
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0 h1:MsuvTghUPjX762sGLnGsxC3HM0B5r83wEtYcYR8/vRs=
660676
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
677+
golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
678+
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
661679
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
662680
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
663681
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
@@ -699,6 +717,7 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w
699717
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
700718
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C17zUDepwGQBb/n+JVg=
701719
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
720+
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
702721
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
703722
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
704723
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -708,6 +727,8 @@ golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7w
708727
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
709728
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
710729
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
730+
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
731+
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
711732
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
712733
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
713734
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -748,6 +769,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn
748769
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
749770
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
750771
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
772+
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
751773
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
752774
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
753775
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=

gateway/modules/global/letsencrypt/kube_store.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package letsencrypt
22

33
import (
4+
"context"
45
"fmt"
56
"os"
67
"path/filepath"
78
"strconv"
89
"strings"
910
"time"
1011

11-
"github.com/mholt/certmagic"
12+
"github.com/caddyserver/certmagic"
1213
"github.com/sirupsen/logrus"
1314
v1 "k8s.io/api/core/v1"
1415
kubeErrors "k8s.io/apimachinery/pkg/api/errors"
@@ -151,7 +152,7 @@ func (s *KubeStore) Stat(key string) (certmagic.KeyInfo, error) {
151152
}
152153

153154
// Lock implements a lock mechanism
154-
func (s *KubeStore) Lock(key string) error {
155+
func (s *KubeStore) Lock(ctx context.Context, key string) error {
155156
start := time.Now()
156157
lockFile := s.lockFileName(key)
157158

@@ -254,12 +255,14 @@ func (s *KubeStore) makeKey(key string) string {
254255
newKey := fmt.Sprintf("letsencrypt-%s", key)
255256
newKey = strings.ReplaceAll(newKey, "/", "--")
256257
newKey = strings.ReplaceAll(newKey, "_", "---")
258+
newKey = strings.ReplaceAll(newKey, "@", "----")
257259
return newKey
258260
}
259261

260262
func (s *KubeStore) getOriginalKey(key string) string {
261263
// Make sure you replace the maximum number of `-` first. It's in descending order
262264
oldKey := strings.TrimPrefix(key, "letsencrypt-")
265+
oldKey = strings.ReplaceAll(oldKey, "----", "@")
263266
oldKey = strings.ReplaceAll(oldKey, "---", "_")
264267
oldKey = strings.ReplaceAll(oldKey, "--", "/")
265268
return oldKey

gateway/modules/global/letsencrypt/letsencrypt.go

+16-10
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"fmt"
55
"sync"
66

7-
"github.com/mholt/certmagic"
7+
"github.com/caddyserver/certmagic"
88
"github.com/sirupsen/logrus"
99
)
1010

@@ -13,7 +13,8 @@ type LetsEncrypt struct {
1313
lock sync.Mutex
1414

1515
// For internal use
16-
client *certmagic.Config
16+
config *certmagic.Config
17+
client *certmagic.ACMEManager
1718
domains domainMapping
1819
}
1920

@@ -22,31 +23,36 @@ func New() (*LetsEncrypt, error) {
2223
// Load config from environment variables
2324
c := loadConfig()
2425

25-
client := certmagic.NewDefault()
26-
client.Agreed = true
27-
client.Email = c.Email
26+
certmagic.DefaultACME.Agreed = true
27+
certmagic.DefaultACME.Email = c.Email
28+
29+
config := certmagic.NewDefault()
2830

2931
// Set the store for certificates
3032
switch c.StoreType {
3133
case StoreLocal:
32-
client.Storage = certmagic.Default.Storage
34+
config.Storage = certmagic.Default.Storage
3335
case StoreSC:
34-
client.Storage = NewScStore()
36+
config.Storage = NewScStore()
3537
case StoreKube:
3638
c, err := NewKubeStore()
3739
if err != nil {
3840
logrus.Errorf("error initializing lets encrypt unable to initialize kubernetes store - %s", err.Error())
3941
return nil, err
4042
}
41-
client.Storage = c
43+
config.Storage = c
4244
default:
4345
return nil, fmt.Errorf("unsupported store type (%s) provided for lets encrypt", c.StoreType)
4446
}
4547

46-
return &LetsEncrypt{client: client, domains: domainMapping{}}, nil
48+
client := certmagic.NewACMEManager(config, certmagic.ACMEManager{
49+
Agreed: true,
50+
})
51+
52+
return &LetsEncrypt{config: config, client: client, domains: domainMapping{}}, nil
4753
}
4854

49-
//SetLetsEncryptEmail sets config email
55+
// SetLetsEncryptEmail sets config email
5056
func (l *LetsEncrypt) SetLetsEncryptEmail(email string) {
5157
l.lock.Lock()
5258
defer l.lock.Unlock()

gateway/modules/global/letsencrypt/operations.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99

1010
// TLSConfig returns the tls config to be used by the http server
1111
func (l *LetsEncrypt) TLSConfig() *tls.Config {
12-
return l.client.TLSConfig()
12+
return l.config.TLSConfig()
1313
}
1414

1515
// LetsEncryptHTTPChallengeHandler handle the http challenge
@@ -20,7 +20,7 @@ func (l *LetsEncrypt) LetsEncryptHTTPChallengeHandler(h http.Handler) http.Handl
2020
// AddExistingCertificate lets the user add an existing certificate. This certificate
2121
// will not be automatically renewed via let's encrypt
2222
func (l *LetsEncrypt) AddExistingCertificate(certFile, keyFile string) error {
23-
return l.client.CacheUnmanagedCertificatePEMFile(certFile, keyFile, []string{})
23+
return l.config.CacheUnmanagedCertificatePEMFile(certFile, keyFile, []string{})
2424
}
2525

2626
// SetProjectDomains sets the config required by lets encrypt
@@ -37,7 +37,7 @@ func (l *LetsEncrypt) SetProjectDomains(project string, c config.LetsEncrypt) er
3737
}
3838

3939
l.domains.setProjectDomains(project, c.WhitelistedDomains)
40-
return l.client.ManageSync(l.domains.getUniqueDomains())
40+
return l.config.ManageSync(l.domains.getUniqueDomains())
4141
}
4242

4343
// DeleteProjectDomains deletes a projects associated domains
@@ -46,5 +46,5 @@ func (l *LetsEncrypt) DeleteProjectDomains(project string) error {
4646
defer l.lock.Unlock()
4747

4848
l.domains.deleteProject(project)
49-
return l.client.ManageSync(l.domains.getUniqueDomains())
49+
return l.config.ManageSync(l.domains.getUniqueDomains())
5050
}

gateway/modules/global/letsencrypt/sc_store.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"sync"
1111
"time"
1212

13-
"github.com/mholt/certmagic"
13+
"github.com/caddyserver/certmagic"
1414
"github.com/sirupsen/logrus"
1515
apigo "github.com/spaceuptech/space-api-go"
1616
"github.com/spaceuptech/space-api-go/db"
@@ -231,7 +231,7 @@ var StorageKeys certmagic.KeyBuilder
231231

232232
// Lock obtains a lock named by the given key. It blocks
233233
// until the lock can be obtained or an error is returned.
234-
func (s *Storage) Lock(key string) error {
234+
func (s *Storage) Lock(ctx context.Context, key string) error {
235235
start := time.Now()
236236
lockFile := s.lockFileName(key)
237237

0 commit comments

Comments
 (0)