]> Raphaël G. Git Repositories - acme/blob - letscert
dbf245e0184be54a7d375068abdaca52780fa75f
[acme] / letscert
1 #! /usr/bin/perl
2
3 # This program is free software: you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation, either version 3 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15 #
16 # Copyright (C) 2016 - 2017 Raphaël Gertz <acmepl@rapsys.eu>
17
18 # Best practice
19 use strict;
20 use warnings;
21
22 # Load acme
23 use acme;
24
25 # Load POSIX
26 use POSIX qw(EXIT_SUCCESS EXIT_FAILURE);
27
28 # Init debug
29 my $debug = 0;
30
31 # Init prod
32 my $prod = 0;
33
34 # Strip and enable debug
35 @ARGV = map { if ($_ eq '-d') { $debug = 1; (); } else { $_; } } @ARGV;
36
37 # Strip and enable prod
38 @ARGV = map { if ($_ eq '-p') { $prod = 1; (); } else { $_; } } @ARGV;
39
40 # Show usage
41 if (scalar(@ARGV) < 2) {
42 print "Usage: $0 user\@example.com www.example.com [example.com] [...]\n";
43 exit EXIT_FAILURE;
44 }
45
46 # Create new object
47 my $acme = acme->new(shift @ARGV, $debug, $prod, @ARGV);
48
49 # Prepare environement
50 $acme->prepare();
51
52 # Generate required keys
53 $acme->genKeys();
54
55 # Generate csr
56 $acme->genCsr();
57
58 # Directory
59 $acme->directory();
60
61 # Register
62 $acme->register();
63
64 # Authorize
65 $acme->authorize();
66
67 # Issue
68 $acme->issue();
69
70 # Exit with success
71 exit EXIT_SUCCESS;