acme-client 2.0.24 → 2.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +16 -0
- data/lib/acme/client/resources/directory.rb +6 -1
- data/lib/acme/client/resources/order.rb +5 -3
- data/lib/acme/client/version.rb +1 -1
- data/lib/acme/client.rb +8 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57864d566a88b4298a243bfaa6f34b5556a7aa1f36f41fd4e61636d0e7fae74e
|
4
|
+
data.tar.gz: c68a9476baa8fad93f9373e16d3dad6249edb2cc7f007d0d1bf4386cf0cf7f6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2cb942f81bfb49f952f955b9eea415b86718c8fe4fb3426cf7cdc1fcb8925b97dfe20e07300480fef894b6438ab5b2046d670564f8bc66a8a80bd5f14e2a282
|
7
|
+
data.tar.gz: f5343edaa0fb6543d2f37e6017732969e63e687c9db877ff8ba188444244e1a180b59cedfbbef12d021a702f65cb089fc08f0ec79ab2363b660343d9df421f5c
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -244,6 +244,22 @@ new_private_key = OpenSSL::PKey::RSA.new(4096)
|
|
244
244
|
client.account_key_change(new_private_key: new_private_key)
|
245
245
|
```
|
246
246
|
|
247
|
+
### Profile Extension
|
248
|
+
|
249
|
+
Provide a CA profile when creating a new order:
|
250
|
+
|
251
|
+
```ruby
|
252
|
+
order = client.new_order(identifiers: ['example.com'], profile: 'shortlived')
|
253
|
+
```
|
254
|
+
|
255
|
+
ACME servers may list supported profiles in the directory endpoint:
|
256
|
+
|
257
|
+
```ruby
|
258
|
+
client.profiles => {"classic": "https://example.com/docs/classic", "shortlived": "https://example.com/docs/shortlived"}
|
259
|
+
```
|
260
|
+
|
261
|
+
See the [RFC draft of certificate profiles](https://datatracker.ietf.org/doc/draft-aaron-acme-profiles/) for more info.
|
262
|
+
|
247
263
|
## Requirements
|
248
264
|
|
249
265
|
Ruby >= 3.0
|
@@ -14,7 +14,8 @@ class Acme::Client::Resources::Directory
|
|
14
14
|
terms_of_service: 'termsOfService',
|
15
15
|
website: 'website',
|
16
16
|
caa_identities: 'caaIdentities',
|
17
|
-
external_account_required: 'externalAccountRequired'
|
17
|
+
external_account_required: 'externalAccountRequired',
|
18
|
+
profiles: 'profiles'
|
18
19
|
}
|
19
20
|
|
20
21
|
def initialize(client, **arguments)
|
@@ -45,6 +46,10 @@ class Acme::Client::Resources::Directory
|
|
45
46
|
meta[DIRECTORY_META[:external_account_required]]
|
46
47
|
end
|
47
48
|
|
49
|
+
def profiles
|
50
|
+
meta[DIRECTORY_META[:profiles]]
|
51
|
+
end
|
52
|
+
|
48
53
|
def meta
|
49
54
|
@directory[:meta]
|
50
55
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Acme::Client::Resources::Order
|
4
|
-
attr_reader :url, :status, :contact, :finalize_url, :identifiers, :authorization_urls, :expires, :certificate_url
|
4
|
+
attr_reader :url, :status, :contact, :finalize_url, :identifiers, :authorization_urls, :expires, :certificate_url, :profile
|
5
5
|
|
6
6
|
def initialize(client, **arguments)
|
7
7
|
@client = client
|
@@ -44,13 +44,14 @@ class Acme::Client::Resources::Order
|
|
44
44
|
finalize_url: finalize_url,
|
45
45
|
authorization_urls: authorization_urls,
|
46
46
|
identifiers: identifiers,
|
47
|
-
certificate_url: certificate_url
|
47
|
+
certificate_url: certificate_url,
|
48
|
+
profile: profile
|
48
49
|
}
|
49
50
|
end
|
50
51
|
|
51
52
|
private
|
52
53
|
|
53
|
-
def assign_attributes(url: nil, status:, expires:, finalize_url:, authorization_urls:, identifiers:, certificate_url: nil)
|
54
|
+
def assign_attributes(url: nil, status:, expires:, finalize_url:, authorization_urls:, identifiers:, certificate_url: nil, profile: nil) # rubocop:disable Layout/LineLength,Metrics/ParameterLists
|
54
55
|
@url = url
|
55
56
|
@status = status
|
56
57
|
@expires = expires
|
@@ -58,5 +59,6 @@ class Acme::Client::Resources::Order
|
|
58
59
|
@authorization_urls = authorization_urls
|
59
60
|
@identifiers = identifiers
|
60
61
|
@certificate_url = certificate_url
|
62
|
+
@profile = profile
|
61
63
|
end
|
62
64
|
end
|
data/lib/acme/client/version.rb
CHANGED
data/lib/acme/client.rb
CHANGED
@@ -135,11 +135,12 @@ class Acme::Client
|
|
135
135
|
@kid ||= account.kid
|
136
136
|
end
|
137
137
|
|
138
|
-
def new_order(identifiers:, not_before: nil, not_after: nil)
|
138
|
+
def new_order(identifiers:, not_before: nil, not_after: nil, profile: nil)
|
139
139
|
payload = {}
|
140
140
|
payload['identifiers'] = prepare_order_identifiers(identifiers)
|
141
141
|
payload['notBefore'] = not_before if not_before
|
142
142
|
payload['notAfter'] = not_after if not_after
|
143
|
+
payload['profile'] = profile if profile
|
143
144
|
|
144
145
|
response = post(endpoint_for(:new_order), payload: payload)
|
145
146
|
arguments = attributes_from_order_response(response)
|
@@ -253,6 +254,10 @@ class Acme::Client
|
|
253
254
|
directory.external_account_required
|
254
255
|
end
|
255
256
|
|
257
|
+
def profiles
|
258
|
+
directory.profiles
|
259
|
+
end
|
260
|
+
|
256
261
|
private
|
257
262
|
|
258
263
|
def load_directory
|
@@ -299,7 +304,8 @@ class Acme::Client
|
|
299
304
|
[:finalize_url, 'finalize'],
|
300
305
|
[:authorization_urls, 'authorizations'],
|
301
306
|
[:certificate_url, 'certificate'],
|
302
|
-
:identifiers
|
307
|
+
:identifiers,
|
308
|
+
:profile
|
303
309
|
)
|
304
310
|
|
305
311
|
attributes[:url] = response.headers[:location] if response.headers[:location]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acme-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Barbier
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-08-
|
10
|
+
date: 2025-08-07 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: rake
|