Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
3670412c
Commit
3670412c
authored
Feb 25, 2017
by
neil
Committed by
GitHub
Feb 25, 2017
Browse files
Merge pull request #668 from Neilpang/dev
Dev
parents
76d4ff05
e6cd596d
Changes
3
Show whitespace changes
Inline
Side-by-side
acme.sh
View file @
3670412c
...
@@ -4369,7 +4369,7 @@ _precheck() {
...
@@ -4369,7 +4369,7 @@ _precheck() {
fi
fi
if
!
_exists
"
$OPENSSL_BIN
"
;
then
if
!
_exists
"
$OPENSSL_BIN
"
;
then
_err
"Please install openssl first."
_err
"Please install openssl first.
OPENSSL_BIN=
$OPENSSL_BIN
"
_err
"We need openssl to generate keys."
_err
"We need openssl to generate keys."
return
1
return
1
fi
fi
...
...
deploy/README.md
View file @
3670412c
...
@@ -50,3 +50,25 @@ export DEPLOY_VSFTPD_RELOAD="/etc/init.d/vsftpd restart"
...
@@ -50,3 +50,25 @@ export DEPLOY_VSFTPD_RELOAD="/etc/init.d/vsftpd restart"
acme.sh
--deploy
-d
ftp.example.com
--deploy-hook
vsftpd
acme.sh
--deploy
-d
ftp.example.com
--deploy-hook
vsftpd
```
```
## 5. Deploy the cert to local exim4 server.
```
sh
acme.sh
--deploy
-d
ftp.example.com
--deploy-hook
exim4
```
The default exim4 conf file is
`/etc/exim/exim.conf`
, if your exim4 conf is not in the default location, you can specify one:
```
sh
export
DEPLOY_EXIM4_CONF
=
"/etc/exim4/exim4.conf.template"
acme.sh
--deploy
-d
ftp.example.com
--deploy-hook
exim4
```
The default command to restart exim4 server is
`service exim4 restart`
, if it doesn't work, you can specify one:
```
sh
export
DEPLOY_EXIM4_RELOAD
=
"/etc/init.d/exim4 restart"
acme.sh
--deploy
-d
ftp.example.com
--deploy-hook
exim4
```
deploy/exim4.sh
View file @
3670412c
...
@@ -4,6 +4,9 @@
...
@@ -4,6 +4,9 @@
#returns 0 means success, otherwise error.
#returns 0 means success, otherwise error.
#DEPLOY_EXIM4_CONF="/etc/exim/exim.conf"
#DEPLOY_EXIM4_RELOAD="service exim4 restart"
######## Public functions #####################
######## Public functions #####################
#domain keyfile certfile cafile fullchain
#domain keyfile certfile cafile fullchain
...
@@ -20,7 +23,92 @@ exim4_deploy() {
...
@@ -20,7 +23,92 @@ exim4_deploy() {
_debug _cca
"
$_cca
"
_debug _cca
"
$_cca
"
_debug _cfullchain
"
$_cfullchain
"
_debug _cfullchain
"
$_cfullchain
"
_err
"deploy cert to exim4 server, Not implemented yet"
_ssl_path
=
"/etc/acme.sh/exim4"
if
!
mkdir
-p
"
$_ssl_path
"
;
then
_err
"Can not create folder:
$_ssl_path
"
return
1
fi
_info
"Copying key and cert"
_real_key
=
"
$_ssl_path
/exim4.key"
if
!
cat
"
$_ckey
"
>
"
$_real_key
"
;
then
_err
"Error: write key file to:
$_real_key
"
return
1
fi
_real_fullchain
=
"
$_ssl_path
/exim4.pem"
if
!
cat
"
$_cfullchain
"
>
"
$_real_fullchain
"
;
then
_err
"Error: write key file to:
$_real_fullchain
"
return
1
fi
DEFAULT_EXIM4_RELOAD
=
"service exim4 restart"
_reload
=
"
${
DEPLOY_EXIM4_RELOAD
:-
$DEFAULT_EXIM4_RELOAD
}
"
if
[
-z
"
$IS_RENEW
"
]
;
then
DEFAULT_EXIM4_CONF
=
"/etc/exim/exim.conf"
if
[
!
-f
"
$DEFAULT_EXIM4_CONF
"
]
;
then
DEFAULT_EXIM4_CONF
=
"/etc/exim4/exim4.conf.template"
fi
_exim4_conf
=
"
${
DEPLOY_EXIM4_CONF
:-
$DEFAULT_EXIM4_CONF
}
"
_debug _exim4_conf
"
$_exim4_conf
"
if
[
!
-f
"
$_exim4_conf
"
]
;
then
if
[
-z
"
$DEPLOY_EXIM4_CONF
"
]
;
then
_err
"exim4 conf is not found, please define DEPLOY_EXIM4_CONF"
return
1
else
_err
"It seems that the specified exim4 conf is not valid, please check."
return
1
fi
fi
if
[
!
-w
"
$_exim4_conf
"
]
;
then
_err
"The file
$_exim4_conf
is not writable, please change the permission."
return
1
fi
_backup_conf
=
"
$DOMAIN_BACKUP_PATH
/exim4.conf.bak"
_info
"Backup
$_exim4_conf
to
$_backup_conf
"
cp
"
$_exim4_conf
"
"
$_backup_conf
"
_info
"Modify exim4 conf:
$_exim4_conf
"
if
_setopt
"
$_exim4_conf
"
"tls_certificate"
"="
"
$_real_fullchain
"
\
&&
_setopt
"
$_exim4_conf
"
"tls_privatekey"
"="
"
$_real_key
"
;
then
_info
"Set config success!"
else
_err
"Config exim4 server error, please report bug to us."
_info
"Restoring exim4 conf"
if
cat
"
$_backup_conf
"
>
"
$_exim4_conf
"
;
then
_info
"Restore conf success"
eval
"
$_reload
"
else
_err
"Opps, error restore exim4 conf, please report bug to us."
fi
return
1
fi
fi
_info
"Run reload:
$_reload
"
if
eval
"
$_reload
"
;
then
_info
"Reload success!"
if
[
"
$DEPLOY_EXIM4_CONF
"
]
;
then
_savedomainconf DEPLOY_EXIM4_CONF
"
$DEPLOY_EXIM4_CONF
"
else
_cleardomainconf DEPLOY_EXIM4_CONF
fi
if
[
"
$DEPLOY_EXIM4_RELOAD
"
]
;
then
_savedomainconf DEPLOY_EXIM4_RELOAD
"
$DEPLOY_EXIM4_RELOAD
"
else
_cleardomainconf DEPLOY_EXIM4_RELOAD
fi
return
0
else
_err
"Reload error, restoring"
if
cat
"
$_backup_conf
"
>
"
$_exim4_conf
"
;
then
_info
"Restore conf success"
eval
"
$_reload
"
else
_err
"Opps, error restore exim4 conf, please report bug to us."
fi
return
1
return
1
fi
return
0
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment