acmesmith 2.7.1 → 2.9.0
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 +35 -0
- data/Dockerfile +7 -6
- data/README.md +25 -3
- data/config.sample.yml +15 -0
- data/docs/post_issuing_hooks/shell.md +7 -4
- data/lib/acmesmith/certificate.rb +34 -9
- data/lib/acmesmith/certificate_retrieving_service.rb +3 -3
- data/lib/acmesmith/challenge_responder_filter.rb +4 -8
- data/lib/acmesmith/challenge_responders/pebble_challtestsrv_dns.rb +1 -1
- data/lib/acmesmith/client.rb +45 -31
- data/lib/acmesmith/command.rb +53 -40
- data/lib/acmesmith/config.rb +16 -0
- data/lib/acmesmith/ordering_service.rb +24 -10
- data/lib/acmesmith/post_issuing_hooks/shell.rb +2 -2
- data/lib/acmesmith/save_certificate_service.rb +1 -1
- data/lib/acmesmith/storages/base.rb +8 -8
- data/lib/acmesmith/storages/filesystem.rb +16 -16
- data/lib/acmesmith/storages/s3.rb +16 -16
- data/lib/acmesmith/subject_name_filter.rb +17 -0
- data/lib/acmesmith/version.rb +1 -1
- metadata +8 -14
- data/.github/FUNDING.yml +0 -2
- data/.github/stale.yml +0 -17
- data/.github/workflows/build.yml +0 -113
- data/.gitignore +0 -12
- data/.rspec +0 -2
- data/Gemfile +0 -6
- data/Gemfile.lock +0 -84
- data/acmesmith.gemspec +0 -33
- data/script/console +0 -14
- data/script/setup +0 -7
data/.github/workflows/build.yml
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
name: ci
|
|
2
|
-
on:
|
|
3
|
-
schedule:
|
|
4
|
-
- cron: '36 7 2,12,22 * *'
|
|
5
|
-
create: {}
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [master]
|
|
8
|
-
push:
|
|
9
|
-
branches: [master, ci-test]
|
|
10
|
-
|
|
11
|
-
env:
|
|
12
|
-
DOCKER_REPO: 'sorah/acmesmith'
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
test:
|
|
16
|
-
name: rspec
|
|
17
|
-
runs-on: ubuntu-latest
|
|
18
|
-
strategy:
|
|
19
|
-
fail-fast: false
|
|
20
|
-
matrix:
|
|
21
|
-
ruby-version: ['3.2', '3.3', '3.4']
|
|
22
|
-
steps:
|
|
23
|
-
- uses: actions/checkout@master
|
|
24
|
-
- uses: sorah-rbpkg/actions@v2
|
|
25
|
-
with:
|
|
26
|
-
ruby-version: "${{ matrix.ruby-version }}"
|
|
27
|
-
bundler-cache: true
|
|
28
|
-
- run: 'bundle exec rspec -fd'
|
|
29
|
-
|
|
30
|
-
integration-pebble:
|
|
31
|
-
name: integration-pebble
|
|
32
|
-
runs-on: ubuntu-latest
|
|
33
|
-
strategy:
|
|
34
|
-
fail-fast: false
|
|
35
|
-
matrix:
|
|
36
|
-
ruby-version: ['3.2', '3.3', '3.4']
|
|
37
|
-
|
|
38
|
-
# FIXME: once GitHub Actions gains support of adding command line arguments to container
|
|
39
|
-
# services:
|
|
40
|
-
# # https://github.com/letsencrypt/pebble
|
|
41
|
-
# pebble:
|
|
42
|
-
# image: letsencrypt/pebble
|
|
43
|
-
# ports:
|
|
44
|
-
# - 14000:14000 # ACME port
|
|
45
|
-
# - 15000:15000 # Management port
|
|
46
|
-
# options: "pebble -config /test/config/pebble-config.json -strict -dnsserver 127.0.0.1:8053"
|
|
47
|
-
#
|
|
48
|
-
# challtestsrv:
|
|
49
|
-
# image: letsencrypt/pebble-challtestsrv:latest
|
|
50
|
-
# ports:
|
|
51
|
-
# - 8055:8055 # HTTP Management API
|
|
52
|
-
# - 8053:8053/udp # DNS
|
|
53
|
-
# - 8053:8053 # DNS
|
|
54
|
-
# options: 'pebble-challtestsrv -management :8055 -defaultIPv4 127.0.0.1'
|
|
55
|
-
|
|
56
|
-
steps:
|
|
57
|
-
- uses: actions/checkout@master
|
|
58
|
-
|
|
59
|
-
- uses: sorah-rbpkg/actions@v2
|
|
60
|
-
with:
|
|
61
|
-
ruby-version: "${{ matrix.ruby-version }}"
|
|
62
|
-
bundler-cache: true
|
|
63
|
-
|
|
64
|
-
- run: 'docker run -d --net=host --rm letsencrypt/pebble pebble -config /test/config/pebble-config.json -strict -dnsserver 127.0.0.1:8053'
|
|
65
|
-
- run: 'docker run -d --net=host --rm letsencrypt/pebble-challtestsrv pebble-challtestsrv -management :8055 -defaultIPv4 127.0.0.1'
|
|
66
|
-
- run: 'bundle exec rspec -fd -t integration_pebble'
|
|
67
|
-
|
|
68
|
-
docker-build:
|
|
69
|
-
name: docker-build
|
|
70
|
-
runs-on: ubuntu-latest
|
|
71
|
-
steps:
|
|
72
|
-
- uses: actions/checkout@master
|
|
73
|
-
- run: 'echo $GITHUB_SHA > REVISION'
|
|
74
|
-
|
|
75
|
-
- run: "docker pull ${DOCKER_REPO}:latest || :"
|
|
76
|
-
- name: "docker tag ${DOCKER_REPO}:${TAG} ${DOCKER_REPO}:latest"
|
|
77
|
-
run: |
|
|
78
|
-
TAG=$(basename "${{ github.ref }}")
|
|
79
|
-
docker pull ${DOCKER_REPO}:${TAG} || :
|
|
80
|
-
docker tag ${DOCKER_REPO}:${TAG} ${DOCKER_REPO}:latest || :
|
|
81
|
-
if: "${{ startsWith(github.ref, 'refs/tags/v') }}"
|
|
82
|
-
|
|
83
|
-
- run: "docker pull ${DOCKER_REPO}:builder || :"
|
|
84
|
-
|
|
85
|
-
- run: "docker build --pull --cache-from ${DOCKER_REPO}:builder --target builder -t ${DOCKER_REPO}:builder -f Dockerfile ."
|
|
86
|
-
- run: "docker build --pull --cache-from ${DOCKER_REPO}:builder --cache-from ${DOCKER_REPO}:latest -t ${DOCKER_REPO}:${GITHUB_SHA} -f Dockerfile ."
|
|
87
|
-
|
|
88
|
-
- run: "echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u sorah --password-stdin"
|
|
89
|
-
if: "${{ github.event_name != 'pull_request' }}"
|
|
90
|
-
|
|
91
|
-
- run: "docker push ${DOCKER_REPO}:builder"
|
|
92
|
-
if: "${{ github.ref == 'refs/heads/master' }}"
|
|
93
|
-
- run: "docker push ${DOCKER_REPO}:${GITHUB_SHA}"
|
|
94
|
-
if: "${{ github.event_name != 'pull_request' }}"
|
|
95
|
-
|
|
96
|
-
docker-push:
|
|
97
|
-
name: docker-push
|
|
98
|
-
needs: [test, integration-pebble, docker-build]
|
|
99
|
-
if: "${{ github.event_name == 'push' || github.event_name == 'create' }}"
|
|
100
|
-
runs-on: ubuntu-latest
|
|
101
|
-
steps:
|
|
102
|
-
- run: "echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u sorah --password-stdin"
|
|
103
|
-
- run: "docker pull ${DOCKER_REPO}:${GITHUB_SHA}"
|
|
104
|
-
|
|
105
|
-
- run: |
|
|
106
|
-
docker tag ${DOCKER_REPO}:${GITHUB_SHA} ${DOCKER_REPO}:latest
|
|
107
|
-
docker push ${DOCKER_REPO}:latest
|
|
108
|
-
if: "${{ github.ref == 'refs/heads/master' }}"
|
|
109
|
-
- run: |
|
|
110
|
-
TAG=$(basename "${{ github.ref }}")
|
|
111
|
-
docker tag ${DOCKER_REPO}:${GITHUB_SHA} ${DOCKER_REPO}:${TAG}
|
|
112
|
-
docker push ${DOCKER_REPO}:${TAG}
|
|
113
|
-
if: "${{ startsWith(github.ref, 'refs/tags/v') }}"
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
acmesmith (2.7.1)
|
|
5
|
-
acme-client (>= 2.0.7, < 3)
|
|
6
|
-
aws-sdk-acm
|
|
7
|
-
aws-sdk-route53
|
|
8
|
-
aws-sdk-s3
|
|
9
|
-
thor
|
|
10
|
-
|
|
11
|
-
GEM
|
|
12
|
-
remote: https://rubygems.org/
|
|
13
|
-
specs:
|
|
14
|
-
acme-client (2.0.19)
|
|
15
|
-
base64 (~> 0.2.0)
|
|
16
|
-
faraday (>= 1.0, < 3.0.0)
|
|
17
|
-
faraday-retry (>= 1.0, < 3.0.0)
|
|
18
|
-
aws-eventstream (1.3.0)
|
|
19
|
-
aws-partitions (1.1018.0)
|
|
20
|
-
aws-sdk-acm (1.81.0)
|
|
21
|
-
aws-sdk-core (~> 3, >= 3.210.0)
|
|
22
|
-
aws-sigv4 (~> 1.5)
|
|
23
|
-
aws-sdk-core (3.214.0)
|
|
24
|
-
aws-eventstream (~> 1, >= 1.3.0)
|
|
25
|
-
aws-partitions (~> 1, >= 1.992.0)
|
|
26
|
-
aws-sigv4 (~> 1.9)
|
|
27
|
-
jmespath (~> 1, >= 1.6.1)
|
|
28
|
-
aws-sdk-kms (1.96.0)
|
|
29
|
-
aws-sdk-core (~> 3, >= 3.210.0)
|
|
30
|
-
aws-sigv4 (~> 1.5)
|
|
31
|
-
aws-sdk-route53 (1.105.0)
|
|
32
|
-
aws-sdk-core (~> 3, >= 3.210.0)
|
|
33
|
-
aws-sigv4 (~> 1.5)
|
|
34
|
-
aws-sdk-s3 (1.176.0)
|
|
35
|
-
aws-sdk-core (~> 3, >= 3.210.0)
|
|
36
|
-
aws-sdk-kms (~> 1)
|
|
37
|
-
aws-sigv4 (~> 1.5)
|
|
38
|
-
aws-sigv4 (1.10.1)
|
|
39
|
-
aws-eventstream (~> 1, >= 1.0.2)
|
|
40
|
-
base64 (0.2.0)
|
|
41
|
-
diff-lcs (1.5.1)
|
|
42
|
-
faraday (2.12.1)
|
|
43
|
-
faraday-net_http (>= 2.0, < 3.5)
|
|
44
|
-
json
|
|
45
|
-
logger
|
|
46
|
-
faraday-net_http (3.4.0)
|
|
47
|
-
net-http (>= 0.5.0)
|
|
48
|
-
faraday-retry (2.2.1)
|
|
49
|
-
faraday (~> 2.0)
|
|
50
|
-
jmespath (1.6.2)
|
|
51
|
-
json (2.9.0)
|
|
52
|
-
logger (1.6.2)
|
|
53
|
-
net-http (0.6.0)
|
|
54
|
-
uri
|
|
55
|
-
rake (13.2.1)
|
|
56
|
-
rexml (3.4.1)
|
|
57
|
-
rspec (3.13.0)
|
|
58
|
-
rspec-core (~> 3.13.0)
|
|
59
|
-
rspec-expectations (~> 3.13.0)
|
|
60
|
-
rspec-mocks (~> 3.13.0)
|
|
61
|
-
rspec-core (3.13.2)
|
|
62
|
-
rspec-support (~> 3.13.0)
|
|
63
|
-
rspec-expectations (3.13.3)
|
|
64
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
65
|
-
rspec-support (~> 3.13.0)
|
|
66
|
-
rspec-mocks (3.13.2)
|
|
67
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
68
|
-
rspec-support (~> 3.13.0)
|
|
69
|
-
rspec-support (3.13.2)
|
|
70
|
-
thor (1.4.0)
|
|
71
|
-
uri (1.0.3)
|
|
72
|
-
|
|
73
|
-
PLATFORMS
|
|
74
|
-
ruby
|
|
75
|
-
|
|
76
|
-
DEPENDENCIES
|
|
77
|
-
acmesmith!
|
|
78
|
-
bundler
|
|
79
|
-
rake
|
|
80
|
-
rexml
|
|
81
|
-
rspec
|
|
82
|
-
|
|
83
|
-
BUNDLED WITH
|
|
84
|
-
2.5.23
|
data/acmesmith.gemspec
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# coding: utf-8
|
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require 'acmesmith/version'
|
|
5
|
-
|
|
6
|
-
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name = "acmesmith"
|
|
8
|
-
spec.version = Acmesmith::VERSION
|
|
9
|
-
spec.authors = ["Sorah Fukumori"]
|
|
10
|
-
spec.email = ["her@sorah.jp"]
|
|
11
|
-
|
|
12
|
-
spec.summary = %q{ACME client (Let's encrypt client) to manage certificate in multi server environment with cloud services (e.g. AWS)}
|
|
13
|
-
spec.description = <<-EOF
|
|
14
|
-
Acmesmith is an [ACME (Automatic Certificate Management Environment)](https://github.com/ietf-wg-acme/acme) client that works perfect on environment with multiple servers. This client saves certificate and keys on cloud services (e.g. AWS S3) securely, then allow to deploy issued certificates onto your servers smoothly. This works well on [Let's encrypt](https://letsencrypt.org).
|
|
15
|
-
EOF
|
|
16
|
-
spec.homepage = "https://github.com/sorah/acmesmith"
|
|
17
|
-
spec.license = "MIT"
|
|
18
|
-
|
|
19
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
20
|
-
spec.bindir = "bin"
|
|
21
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
22
|
-
spec.require_paths = ["lib"]
|
|
23
|
-
|
|
24
|
-
spec.add_dependency "acme-client", '>= 2.0.7', '< 3'
|
|
25
|
-
spec.add_dependency "aws-sdk-acm"
|
|
26
|
-
spec.add_dependency "aws-sdk-route53"
|
|
27
|
-
spec.add_dependency "aws-sdk-s3"
|
|
28
|
-
spec.add_dependency "thor"
|
|
29
|
-
|
|
30
|
-
spec.add_development_dependency "bundler"
|
|
31
|
-
spec.add_development_dependency "rake"
|
|
32
|
-
spec.add_development_dependency "rspec"
|
|
33
|
-
end
|
data/script/console
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
require "bundler/setup"
|
|
4
|
-
require "acmesmith"
|
|
5
|
-
|
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
-
|
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
-
# require "pry"
|
|
11
|
-
# Pry.start
|
|
12
|
-
|
|
13
|
-
require "irb"
|
|
14
|
-
IRB.start
|