Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
19650351
Commit
19650351
authored
Feb 23, 2017
by
neilpang
Browse files
support exim4 deploy
parent
a239a9ef
Changes
2
Hide whitespace changes
Inline
Side-by-side
deploy/README.md
View file @
19650351
...
@@ -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 @
19650351
...
@@ -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"
return
1
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
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