services/dkim-key: allow configuring owner for private key
This commit is contained in:
parent
c7c0bdb7cb
commit
e741cd7bf7
1 changed files with 4 additions and 3 deletions
|
@ -10,14 +10,15 @@
|
||||||
(define-record-type* <dkim-key-configuration>
|
(define-record-type* <dkim-key-configuration>
|
||||||
dkim-key-configuration make-dkim-key-configuration
|
dkim-key-configuration make-dkim-key-configuration
|
||||||
dkim-key-configuration?
|
dkim-key-configuration?
|
||||||
|
(directory dkim-key-configuration-directory (default "/etc/dkim"))
|
||||||
|
(owner dkim-key-configuration-owner (default "smtpd"))
|
||||||
(domain dkim-key-configuration-selector (default ""))
|
(domain dkim-key-configuration-selector (default ""))
|
||||||
(selector dkim-key-configuration-selector (default "dkim"))
|
(selector dkim-key-configuration-selector (default "dkim"))
|
||||||
(directory dkim-key-configuration-directory (default "/etc/dkim"))
|
|
||||||
(key-length dkim-key-configuration-key-length (default 1024)))
|
(key-length dkim-key-configuration-key-length (default 1024)))
|
||||||
|
|
||||||
(define (dkim-key-activation config)
|
(define (dkim-key-activation config)
|
||||||
(match-record config <dkim-key-configuration>
|
(match-record config <dkim-key-configuration>
|
||||||
(domain directory selector key-length)
|
(directory owner domain selector key-length)
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build utils))
|
(use-modules (guix build utils))
|
||||||
(mkdir-p #$directory)
|
(mkdir-p #$directory)
|
||||||
|
@ -29,7 +30,7 @@
|
||||||
(unless (file-exists? private)
|
(unless (file-exists? private)
|
||||||
(let ((openssl #$(file-append openssl "/bin/openssl")))
|
(let ((openssl #$(file-append openssl "/bin/openssl")))
|
||||||
(system* openssl "genrsa" "-out" private (number->string #$key-length))
|
(system* openssl "genrsa" "-out" private (number->string #$key-length))
|
||||||
(chown private (passwd:uid (getpwnam "smtpd")) -1)
|
(chown private (passwd:uid (getpwnam #$owner)) -1)
|
||||||
(system* openssl "rsa" "-in" private "-pubout" "-out" public)
|
(system* openssl "rsa" "-in" private "-pubout" "-out" public)
|
||||||
(system* "sed" "-i"
|
(system* "sed" "-i"
|
||||||
"1s/.*/v=DKIM1;p=/;:nl;${s/-----.*//;q;};N;s/\\n//g;b nl;"
|
"1s/.*/v=DKIM1;p=/;:nl;${s/-----.*//;q;};N;s/\\n//g;b nl;"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue