5 Commits

Author SHA1 Message Date
Niklas Keller
6da46ddaf6 Upgrade dependencies 2018-06-06 21:50:52 +02:00
Niklas Keller
51acff5bd3 Implement --rekey option
Closes #65.
Closes #19.
2018-04-15 19:14:36 +02:00
Niklas Keller
ea3e9dc68c Update LICENSE date 2018-04-15 18:27:00 +02:00
Niklas Keller
6f01055884 Upgrade to amphp/process v0.3.x 2018-04-15 18:19:40 +02:00
Niklas Keller
297e1aa9b1 Update dependencies 2018-04-15 18:12:32 +02:00
8 changed files with 272 additions and 176 deletions

View File

@@ -28,7 +28,10 @@ certificates:
# user: User running the web server. Challenge files are world readable,
# but some servers might require to be owner of files they serve.
#
# rekey: Regenerate certificate key pairs even if a key pair already exists.
#
- bits: 4096
rekey: true
paths:
/var/www/example:
- example.org

View File

@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2015-2017 Niklas Keller
Copyright (c) 2015-2018 Niklas Keller
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -13,7 +13,7 @@
"require": {
"php": ">=7",
"ext-openssl": "*",
"amphp/process": "^0.2",
"amphp/process": "^0.3.3",
"amphp/parallel": "^0.2.5",
"kelunik/acme": "^0.5",
"kelunik/certificate": "^1",

399
composer.lock generated
View File

@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "dfce16af4260296c6ecf258e5b7e57b1",
"content-hash": "f51ea3db33f712c8b9038d0a66a4bbb3",
"packages": [
{
"name": "amphp/amp",
"version": "v2.0.6",
"version": "v2.0.7",
"source": {
"type": "git",
"url": "https://github.com/amphp/amp.git",
"reference": "4a742beb59615f36ed998e2dc210e36576e44c44"
"reference": "d561cc9736bc18dd94a2fc9cdae98b616bd92c43"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/amphp/amp/zipball/4a742beb59615f36ed998e2dc210e36576e44c44",
"reference": "4a742beb59615f36ed998e2dc210e36576e44c44",
"url": "https://api.github.com/repos/amphp/amp/zipball/d561cc9736bc18dd94a2fc9cdae98b616bd92c43",
"reference": "d561cc9736bc18dd94a2fc9cdae98b616bd92c43",
"shasum": ""
},
"require": {
@@ -80,7 +80,7 @@
"non-blocking",
"promise"
],
"time": "2018-01-27T19:18:05+00:00"
"time": "2018-04-30T20:49:57+00:00"
},
{
"name": "amphp/artax",
@@ -144,16 +144,16 @@
},
{
"name": "amphp/byte-stream",
"version": "v1.3.0",
"version": "v1.3.1",
"source": {
"type": "git",
"url": "https://github.com/amphp/byte-stream.git",
"reference": "6d6c89f58c213e600e2ab5e3b1678fb61333eeb7"
"reference": "1b75b122e6f069e7d102eef065dc192119d99ca7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/amphp/byte-stream/zipball/6d6c89f58c213e600e2ab5e3b1678fb61333eeb7",
"reference": "6d6c89f58c213e600e2ab5e3b1678fb61333eeb7",
"url": "https://api.github.com/repos/amphp/byte-stream/zipball/1b75b122e6f069e7d102eef065dc192119d99ca7",
"reference": "1b75b122e6f069e7d102eef065dc192119d99ca7",
"shasum": ""
},
"require": {
@@ -197,7 +197,7 @@
"non-blocking",
"stream"
],
"time": "2018-03-13T15:32:38+00:00"
"time": "2018-04-04T05:33:09+00:00"
},
{
"name": "amphp/cache",
@@ -247,16 +247,16 @@
},
{
"name": "amphp/dns",
"version": "v0.9.12",
"version": "v0.9.13",
"source": {
"type": "git",
"url": "https://github.com/amphp/dns.git",
"reference": "2c8133a7b4267ba570f473abe4b08b01a0c8238a"
"reference": "4647e5f58263ffdeff7da5c269f517cb48cff84f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/amphp/dns/zipball/2c8133a7b4267ba570f473abe4b08b01a0c8238a",
"reference": "2c8133a7b4267ba570f473abe4b08b01a0c8238a",
"url": "https://api.github.com/repos/amphp/dns/zipball/4647e5f58263ffdeff7da5c269f517cb48cff84f",
"reference": "4647e5f58263ffdeff7da5c269f517cb48cff84f",
"shasum": ""
},
"require": {
@@ -268,6 +268,7 @@
"amphp/uri": "^0.1",
"amphp/windows-registry": "^0.3",
"daverandom/libdns": "^2.0.1",
"ext-filter": "*",
"php": ">=7.0"
},
"require-dev": {
@@ -320,7 +321,7 @@
"dns",
"resolve"
],
"time": "2018-01-10T16:26:11+00:00"
"time": "2018-05-01T18:08:54+00:00"
},
{
"name": "amphp/file",
@@ -504,33 +505,36 @@
},
{
"name": "amphp/process",
"version": "v0.2.1",
"version": "v0.3.3",
"source": {
"type": "git",
"url": "https://github.com/amphp/process.git",
"reference": "5aa6040fcf5c98bfb4f4a8e68305cb6cd6a3d37a"
"reference": "b795d20a7f6d5a0637128a02be613f520f1705fc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/amphp/process/zipball/5aa6040fcf5c98bfb4f4a8e68305cb6cd6a3d37a",
"reference": "5aa6040fcf5c98bfb4f4a8e68305cb6cd6a3d37a",
"url": "https://api.github.com/repos/amphp/process/zipball/b795d20a7f6d5a0637128a02be613f520f1705fc",
"reference": "b795d20a7f6d5a0637128a02be613f520f1705fc",
"shasum": ""
},
"require": {
"amphp/amp": "^2",
"amphp/byte-stream": "^1"
"amphp/byte-stream": "^1",
"php": ">=7"
},
"require-dev": {
"amphp/phpunit-util": "^1",
"friendsofphp/php-cs-fixer": "^2.3",
"kelunik/fqn-check": "^0.1.3",
"phpunit/phpunit": "^6"
},
"type": "library",
"autoload": {
"psr-4": {
"Amp\\Process\\": "lib"
}
},
"files": [
"lib/constants.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -541,27 +545,31 @@
"name": "Bob Weinand",
"email": "bobwei9@hotmail.com"
},
{
"name": "Niklas Keller",
"email": "me@kelunik.com"
},
{
"name": "Aaron Piotrowski",
"email": "aaron@trowski.com"
}
],
"description": "Asynchronous process manager",
"description": "Asynchronous process manager.",
"homepage": "https://github.com/amphp/process",
"time": "2017-07-18T03:37:19+00:00"
"time": "2018-04-08T18:55:42+00:00"
},
{
"name": "amphp/socket",
"version": "v0.10.6",
"version": "v0.10.9",
"source": {
"type": "git",
"url": "https://github.com/amphp/socket.git",
"reference": "be8bec970151404e85f33122d59b4943c4500c5a"
"reference": "6e9686b62b87c2cad235139a44be5121fe34edbb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/amphp/socket/zipball/be8bec970151404e85f33122d59b4943c4500c5a",
"reference": "be8bec970151404e85f33122d59b4943c4500c5a",
"url": "https://api.github.com/repos/amphp/socket/zipball/6e9686b62b87c2cad235139a44be5121fe34edbb",
"reference": "6e9686b62b87c2cad235139a44be5121fe34edbb",
"shasum": ""
},
"require": {
@@ -615,7 +623,7 @@
"tcp",
"tls"
],
"time": "2018-03-14T18:37:46+00:00"
"time": "2018-05-01T21:14:10+00:00"
},
{
"name": "amphp/sync",
@@ -799,16 +807,16 @@
},
{
"name": "kelunik/acme",
"version": "v0.5.0",
"version": "v0.5.1",
"source": {
"type": "git",
"url": "https://github.com/kelunik/acme.git",
"reference": "496c9189f37ab512664cb12dc7b994c1ca6965cb"
"reference": "5783e1209d7c0dd8f3dc2723bf7bc378997462cf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kelunik/acme/zipball/496c9189f37ab512664cb12dc7b994c1ca6965cb",
"reference": "496c9189f37ab512664cb12dc7b994c1ca6965cb",
"url": "https://api.github.com/repos/kelunik/acme/zipball/5783e1209d7c0dd8f3dc2723bf7bc378997462cf",
"reference": "5783e1209d7c0dd8f3dc2723bf7bc378997462cf",
"shasum": ""
},
"require": {
@@ -855,7 +863,7 @@
"ssl",
"tls"
],
"time": "2017-11-28T14:26:01+00:00"
"time": "2018-06-06T19:47:11+00:00"
},
{
"name": "kelunik/certificate",
@@ -908,26 +916,30 @@
},
{
"name": "league/climate",
"version": "3.2.4",
"version": "3.4.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/climate.git",
"reference": "ca70f67f7739cca823eba0ad98f8130bca226bf0"
"reference": "d657a19837c1f79a891381fb128b755aa3386381"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/climate/zipball/ca70f67f7739cca823eba0ad98f8130bca226bf0",
"reference": "ca70f67f7739cca823eba0ad98f8130bca226bf0",
"url": "https://api.github.com/repos/thephpleague/climate/zipball/d657a19837c1f79a891381fb128b755aa3386381",
"reference": "d657a19837c1f79a891381fb128b755aa3386381",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"seld/cli-prompt": "~1.0"
"php": "^5.6|^7.0",
"psr/log": "^1.0",
"seld/cli-prompt": "^1.0"
},
"require-dev": {
"mikey179/vfsstream": "~1.4",
"mockery/mockery": "~0.9",
"phpunit/phpunit": "~4.6"
"mikey179/vfsstream": "^1.4",
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^5.7.16"
},
"suggest": {
"ext-mbstring": "If ext-mbstring is not available you MUST install symfony/polyfill-mbstring"
},
"type": "library",
"autoload": {
@@ -940,6 +952,12 @@
"MIT"
],
"authors": [
{
"name": "Craig Duncan",
"email": "git@duncanc.co.uk",
"homepage": "https://github.com/duncan3dc",
"role": "Developer"
},
{
"name": "Joe Tannenbaum",
"email": "hey@joe.codes",
@@ -955,7 +973,7 @@
"php",
"terminal"
],
"time": "2016-10-30T22:18:25+00:00"
"time": "2018-04-29T16:43:54+00:00"
},
{
"name": "namshi/jose",
@@ -1020,6 +1038,53 @@
],
"time": "2016-12-05T07:27:31+00:00"
},
{
"name": "psr/log",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"time": "2016-10-10T12:19:37+00:00"
},
{
"name": "rdlowrey/auryn",
"version": "v1.4.2",
@@ -1182,16 +1247,16 @@
},
{
"name": "symfony/polyfill-php56",
"version": "v1.7.0",
"version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php56.git",
"reference": "ebc999ce5f14204c5150b9bd15f8f04e621409d8"
"reference": "af98553c84912459db3f636329567809d639a8f6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ebc999ce5f14204c5150b9bd15f8f04e621409d8",
"reference": "ebc999ce5f14204c5150b9bd15f8f04e621409d8",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/af98553c84912459db3f636329567809d639a8f6",
"reference": "af98553c84912459db3f636329567809d639a8f6",
"shasum": ""
},
"require": {
@@ -1201,7 +1266,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.7-dev"
"dev-master": "1.8-dev"
}
},
"autoload": {
@@ -1234,20 +1299,20 @@
"portable",
"shim"
],
"time": "2018-01-30T19:27:44+00:00"
"time": "2018-04-26T10:06:28+00:00"
},
{
"name": "symfony/polyfill-util",
"version": "v1.7.0",
"version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-util.git",
"reference": "e17c808ec4228026d4f5a8832afa19be85979563"
"reference": "1a5ad95d9436cbff3296034fe9f8d586dce3fb3a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/e17c808ec4228026d4f5a8832afa19be85979563",
"reference": "e17c808ec4228026d4f5a8832afa19be85979563",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/1a5ad95d9436cbff3296034fe9f8d586dce3fb3a",
"reference": "1a5ad95d9436cbff3296034fe9f8d586dce3fb3a",
"shasum": ""
},
"require": {
@@ -1256,7 +1321,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.7-dev"
"dev-master": "1.8-dev"
}
},
"autoload": {
@@ -1286,7 +1351,7 @@
"polyfill",
"shim"
],
"time": "2018-01-31T18:08:44+00:00"
"time": "2018-04-26T10:06:28+00:00"
},
{
"name": "symfony/yaml",
@@ -1457,6 +1522,50 @@
],
"time": "2016-08-30T16:08:34+00:00"
},
{
"name": "composer/xdebug-handler",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
"reference": "c919dc6c62e221fc6406f861ea13433c0aa24f08"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/c919dc6c62e221fc6406f861ea13433c0aa24f08",
"reference": "c919dc6c62e221fc6406f861ea13433c0aa24f08",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0",
"psr/log": "^1.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Composer\\XdebugHandler\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "John Stevenson",
"email": "john-stevenson@blueyonder.co.uk"
}
],
"description": "Restarts a process without xdebug.",
"keywords": [
"Xdebug",
"performance"
],
"time": "2018-04-11T15:42:36+00:00"
},
{
"name": "doctrine/annotations",
"version": "v1.4.0",
@@ -1635,20 +1744,21 @@
},
{
"name": "friendsofphp/php-cs-fixer",
"version": "v2.11.0",
"version": "v2.12.0",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
"reference": "2ac8defbe07599b79005cca764bfffe7aeac0bf2"
"reference": "a53f39a72cf0baa03909fae779a4de6d3772c74f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/2ac8defbe07599b79005cca764bfffe7aeac0bf2",
"reference": "2ac8defbe07599b79005cca764bfffe7aeac0bf2",
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/a53f39a72cf0baa03909fae779a4de6d3772c74f",
"reference": "a53f39a72cf0baa03909fae779a4de6d3772c74f",
"shasum": ""
},
"require": {
"composer/semver": "^1.4",
"composer/xdebug-handler": "^1.0",
"doctrine/annotations": "^1.2",
"ext-json": "*",
"ext-tokenizer": "*",
@@ -1670,16 +1780,20 @@
"require-dev": {
"johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0",
"justinrainbow/json-schema": "^5.0",
"keradus/cli-executor": "^1.0",
"keradus/cli-executor": "^1.1",
"mikey179/vfsstream": "^1.6",
"php-coveralls/php-coveralls": "^2.0",
"php-coveralls/php-coveralls": "^2.1",
"php-cs-fixer/accessible-object": "^1.0",
"phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0",
"phpunitgoodpractices/traits": "^1.3.1",
"symfony/phpunit-bridge": "^3.2.2 || ^4.0"
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.0",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.0",
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1",
"phpunitgoodpractices/traits": "^1.4",
"symfony/phpunit-bridge": "^4.0"
},
"suggest": {
"ext-mbstring": "For handling non-UTF8 characters in cache signature.",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.",
"symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible."
},
"bin": [
@@ -1688,7 +1802,7 @@
"type": "application",
"extra": {
"branch-alias": {
"dev-master": "2.11-dev"
"dev-master": "2.12-dev"
}
},
"autoload": {
@@ -1700,9 +1814,6 @@
"tests/Test/AbstractIntegrationCaseFactory.php",
"tests/Test/AbstractIntegrationTestCase.php",
"tests/Test/Assert/AssertTokensTrait.php",
"tests/Test/Constraint/SameStringsConstraint.php",
"tests/Test/Constraint/SameStringsConstraintForV5.php",
"tests/Test/Constraint/SameStringsConstraintForV7.php",
"tests/Test/IntegrationCase.php",
"tests/Test/IntegrationCaseFactory.php",
"tests/Test/IntegrationCaseFactoryInterface.php",
@@ -1725,7 +1836,7 @@
}
],
"description": "A tool to automatically fix PHP code style",
"time": "2018-03-20T18:11:36+00:00"
"time": "2018-06-02T17:33:35+00:00"
},
{
"name": "league/event",
@@ -1779,16 +1890,16 @@
},
{
"name": "macfja/phar-builder",
"version": "0.2.6",
"version": "0.2.7",
"source": {
"type": "git",
"url": "https://github.com/MacFJA/PharBuilder.git",
"reference": "ab3d6f2089e1dc908b545627ab857861bdf2891c"
"reference": "630b908ed22fae8611dfd2dff72930f7f395d8b6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/MacFJA/PharBuilder/zipball/ab3d6f2089e1dc908b545627ab857861bdf2891c",
"reference": "ab3d6f2089e1dc908b545627ab857861bdf2891c",
"url": "https://api.github.com/repos/MacFJA/PharBuilder/zipball/630b908ed22fae8611dfd2dff72930f7f395d8b6",
"reference": "630b908ed22fae8611dfd2dff72930f7f395d8b6",
"shasum": ""
},
"require": {
@@ -1839,7 +1950,7 @@
}
],
"description": "CLI tool for create phar of your composer based project",
"time": "2017-09-30T12:15:07+00:00"
"time": "2018-05-07T09:29:55+00:00"
},
{
"name": "macfja/symfony-console-filechooser",
@@ -1977,16 +2088,16 @@
},
{
"name": "paragonie/random_compat",
"version": "v2.0.11",
"version": "v2.0.14",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8"
"reference": "f6ce7dd93628088e1017fb5dd73b0b9fec7df9e5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8",
"reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/f6ce7dd93628088e1017fb5dd73b0b9fec7df9e5",
"reference": "f6ce7dd93628088e1017fb5dd73b0b9fec7df9e5",
"shasum": ""
},
"require": {
@@ -2018,10 +2129,11 @@
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"keywords": [
"csprng",
"polyfill",
"pseudorandom",
"random"
],
"time": "2017-09-27T21:40:39+00:00"
"time": "2018-06-06T17:40:22+00:00"
},
{
"name": "phar-io/manifest",
@@ -2330,23 +2442,23 @@
},
{
"name": "phpspec/prophecy",
"version": "1.7.5",
"version": "1.7.6",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
"reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401"
"reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401",
"reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
"reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.2",
"php": "^5.3|^7.0",
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
"sebastian/comparator": "^1.1|^2.0",
"sebastian/comparator": "^1.1|^2.0|^3.0",
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
},
"require-dev": {
@@ -2389,20 +2501,20 @@
"spy",
"stub"
],
"time": "2018-02-19T10:16:54+00:00"
"time": "2018-04-18T13:57:24+00:00"
},
{
"name": "phpunit/php-code-coverage",
"version": "5.3.0",
"version": "5.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1"
"reference": "c89677919c5dd6d3b3852f230a663118762218ac"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1",
"reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
"reference": "c89677919c5dd6d3b3852f230a663118762218ac",
"shasum": ""
},
"require": {
@@ -2452,7 +2564,7 @@
"testing",
"xunit"
],
"time": "2017-12-06T09:29:45+00:00"
"time": "2018-04-06T15:36:58+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -2642,16 +2754,16 @@
},
{
"name": "phpunit/phpunit",
"version": "6.5.7",
"version": "6.5.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "6bd77b57707c236833d2b57b968e403df060c9d9"
"reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6bd77b57707c236833d2b57b968e403df060c9d9",
"reference": "6bd77b57707c236833d2b57b968e403df060c9d9",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4f21a3c6b97c42952fd5c2837bb354ec0199b97b",
"reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b",
"shasum": ""
},
"require": {
@@ -2722,20 +2834,20 @@
"testing",
"xunit"
],
"time": "2018-02-26T07:01:09+00:00"
"time": "2018-04-10T11:38:34+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
"version": "5.0.6",
"version": "5.0.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
"reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf"
"reference": "3eaf040f20154d27d6da59ca2c6e28ac8fd56dce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
"reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3eaf040f20154d27d6da59ca2c6e28ac8fd56dce",
"reference": "3eaf040f20154d27d6da59ca2c6e28ac8fd56dce",
"shasum": ""
},
"require": {
@@ -2781,54 +2893,7 @@
"mock",
"xunit"
],
"time": "2018-01-06T05:45:45+00:00"
},
{
"name": "psr/log",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"time": "2016-10-10T12:19:37+00:00"
"time": "2018-05-29T13:50:43+00:00"
},
{
"name": "rych/bytesize",
@@ -3776,16 +3841,16 @@
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.7.0",
"version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
"reference": "3296adf6a6454a050679cde90f95350ad604b171"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
"reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171",
"reference": "3296adf6a6454a050679cde90f95350ad604b171",
"shasum": ""
},
"require": {
@@ -3797,7 +3862,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.7-dev"
"dev-master": "1.8-dev"
}
},
"autoload": {
@@ -3831,20 +3896,20 @@
"portable",
"shim"
],
"time": "2018-01-30T19:27:44+00:00"
"time": "2018-04-26T10:06:28+00:00"
},
{
"name": "symfony/polyfill-php70",
"version": "v1.7.0",
"version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php70.git",
"reference": "3532bfcd8f933a7816f3a0a59682fc404776600f"
"reference": "77454693d8f10dd23bb24955cffd2d82db1007a6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3532bfcd8f933a7816f3a0a59682fc404776600f",
"reference": "3532bfcd8f933a7816f3a0a59682fc404776600f",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/77454693d8f10dd23bb24955cffd2d82db1007a6",
"reference": "77454693d8f10dd23bb24955cffd2d82db1007a6",
"shasum": ""
},
"require": {
@@ -3854,7 +3919,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.7-dev"
"dev-master": "1.8-dev"
}
},
"autoload": {
@@ -3890,20 +3955,20 @@
"portable",
"shim"
],
"time": "2018-01-30T19:27:44+00:00"
"time": "2018-04-26T10:06:28+00:00"
},
{
"name": "symfony/polyfill-php72",
"version": "v1.7.0",
"version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
"reference": "8eca20c8a369e069d4f4c2ac9895144112867422"
"reference": "a4576e282d782ad82397f3e4ec1df8e0f0cafb46"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/8eca20c8a369e069d4f4c2ac9895144112867422",
"reference": "8eca20c8a369e069d4f4c2ac9895144112867422",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/a4576e282d782ad82397f3e4ec1df8e0f0cafb46",
"reference": "a4576e282d782ad82397f3e4ec1df8e0f0cafb46",
"shasum": ""
},
"require": {
@@ -3912,7 +3977,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.7-dev"
"dev-master": "1.8-dev"
}
},
"autoload": {
@@ -3945,7 +4010,7 @@
"portable",
"shim"
],
"time": "2018-01-31T17:43:24+00:00"
"time": "2018-04-26T10:06:28+00:00"
},
{
"name": "symfony/process",

View File

@@ -24,7 +24,7 @@ You can separate multiple domains (`-d`) with `,`, `:` or `;`. You can separate
If you specify less paths than domains, the last one will be used for the remaining domains.
Please note that Let's Encrypt has rate limits. Currently it's five certificates per domain per seven days. If you combine multiple subdomains in a single certificate, they count as just one certificate. If you just want to test things out, you can use their staging server, which has way higher rate limits by appending `--s letsencrypt:staging`.
Please note that Let's Encrypt has rate limits. Currently it's five certificates per domain per seven days. If you combine multiple subdomains in a single certificate, they count as just one certificate. If you just want to test things out, you can use their staging server, which has way higher rate limits by appending `--server letsencrypt:staging`.
## Revoke a Certificate

View File

@@ -53,7 +53,10 @@ certificates:
# user: User running the web server. Challenge files are world readable,
# but some servers might require to be owner of files they serve.
#
# rekey: Regenerate certificate key pairs even if a key pair already exists.
#
- bits: 4096
rekey: true
paths:
/var/www/example:
- example.org

View File

@@ -86,6 +86,13 @@ class Auto implements Command {
return self::EXIT_CONFIG_ERROR;
}
foreach ($config['certificates'] as $certificateConfig) {
if (isset($certificateConfig['rekey']) && !\is_bool($certificateConfig['rekey'])) {
$this->climate->error("Config file ({$configPath}) defines an invalid 'rekey' value.");
return self::EXIT_CONFIG_ERROR;
}
}
$concurrency = isset($config['challenge-concurrency']) ? (int) $config['challenge-concurrency'] : null;
$process = new Process([
@@ -179,8 +186,7 @@ class Auto implements Command {
$domainPathMap = $this->toDomainPathMap($certificate['paths']);
$domains = \array_keys($domainPathMap);
$commonName = \reset($domains);
$process = new Process([
$processArgs = [
PHP_BINARY,
$GLOBALS['argv'][0],
'check',
@@ -192,7 +198,13 @@ class Auto implements Command {
$commonName,
'--names',
\implode(',', $domains),
]);
];
if ($certificate['rekey'] ?? false) {
$processArgs[] = '--rekey';
}
$process = new Process($processArgs);
$process->start();
$exit = yield $process->join();

View File

@@ -97,14 +97,20 @@ class Issue implements Command {
throw new AcmeException('Issuance failed, not all challenges could be solved.');
}
$path = 'certs/' . $keyFile . '/' . \reset($domains) . '/key.pem';
$keyPath = 'certs/' . $keyFile . '/' . \reset($domains) . '/key.pem';
$bits = $args->get('bits');
$regenerateKey = $args->get('rekey');
try {
$key = yield $keyStore->get($path);
$key = yield $keyStore->get($keyPath);
} catch (KeyStoreException $e) {
$regenerateKey = true;
}
if ($regenerateKey) {
$this->climate->whisper(' Generating new key pair ...');
$key = (new RsaKeyGenerator($bits))->generateKey();
$key = yield $keyStore->put($path, $key);
}
$this->climate->br();
@@ -117,6 +123,8 @@ class Issue implements Command {
$path = AcmeClient\normalizePath($args->get('storage')) . '/certs/' . $keyFile;
$certificateStore = new CertificateStore($path);
yield $keyStore->put($keyPath, $key);
yield $certificateStore->put($certificates);
$this->climate->info(' Successfully issued certificate.');
@@ -232,6 +240,11 @@ class Issue implements Command {
'defaultValue' => 10,
'castTo' => 'int',
],
'rekey' => [
'longPrefix' => 'rekey',
'description' => 'Regenerate the key pair even if a key pair already exists.',
'noValue' => true,
],
];
}
}