forked from littlebizzy/slickstack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ss-perms-nginx-ssl.txt
87 lines (68 loc) · 4.76 KB
/
ss-perms-nginx-ssl.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash
####################################################################################################
#### author: SlickStack ############################################################################
#### link: https://slickstack.io ###################################################################
#### mirror: https://mirrors.slickstack.io/bash/ss-perms-nginx-ssl.txt #############################
#### path: /var/www/ss-perms-nginx-ssl #############################################################
#### destination: n/a (not a boilerplate) ##########################################################
#### purpose: Resets all file and user permissions for SSL certs and related Nginx files ###########
#### module version: Nginx 1.18.x, OpenSSL 1.1.1x, Certbot 0.40.x ##################################
#### sourced by: ss-encrypt-certbot, ss-encrypt-openssl, ss-install-nginx-ssl, ss-perms ############
#### bash aliases: ss perms letsencrypt, ss perms nginx ssl, ss perms openssl, ss perms ssl ########
####################################################################################################
## source ss-config ##
source /var/www/ss-config
## source ss-functions ##
source /var/www/ss-functions
## BELOW THIS RELIES ON SS-CONFIG AND SS-FUNCTIONS
####################################################################################################
#### TABLE OF CONTENTS #############################################################################
####################################################################################################
## A. Touch Timestamp File
## B. Message (Begin Script)
## C. Reset Permissions (SSL Certs + Related Files)
####################################################################################################
#### A. SS-Perms-Nginx-SSL: Touch Timestamp File ###################################################
####################################################################################################
## this is a dummy timestamp file that will remember the last time this script was run ##
## it can be useful for developer reference and is sometimes used by SlickStack ##
## script timestamp ##
touch "$TIMESTAMP_SS_PERMS_NGINX_SSL"
####################################################################################################
#### B. SS-Perms-Nginx-SSL: Message (Begin Script) #################################################
####################################################################################################
## this is a simple message that announces to the shell the purpose of this bash script ##
## it will only be noticed by sudo users who manually call ss core bash scripts ##
## echo message ##
echo -e "${PURPLE}Running ss-perms-nginx-ssl: Resets all file and user permissions for SSL certs and related Nginx files... ${NOCOLOR}"
sleep "$SLEEP_MESSAGE_BEGIN"
####################################################################################################
#### C. SS-Perms-Nginx-SSL: Reset Permissions (SSL Certs + Related Files) ##########################
####################################################################################################
## here we must reset permissions for all SSL certificates and keys and related files ##
## this includes related Nginx files and other folders with sensitive perms ##
## make dirs ##
mkdir /var/www/certs
mkdir /var/www/certs/keys
mkdir /var/www/html/.well-known ## certbot
mkdir /var/www/html/.well-known/acme-challenge ## certbot
## reset permissions ##
chown -R $SFTP_USER:www-data /var/www/html/.well-known ## must be $SFTP_USER:www-data
chown root:root /var/www/certs ## must be root:root
chown root:root /var/www/certs/keys ## must be root:root
chown -R $SFTP_USER:www-data /var/www/html/.well-known ## must be $SFTP_USER:www-data
chmod 0775 /var/www/html/.well-known ## must be 0775
chmod 0755 /var/www/certs ## must be 0755
chmod 0700 /var/www/certs/keys ## must be 0700
chmod 0644 /var/www/certs/*.crt ## public certs/dhparam should be 0644
chmod 0644 /var/www/certs/*.pem ## public certs/dhparam should be 0644
chmod 0600 /var/www/certs/keys/*.key ## must be 0600
chmod 0600 /var/www/certs/keys/*.pem ## must be 0600
chmod 0775 /var/www/html/.well-known
####################################################################################################
#### SlickStack: External References Used To Improve This Script (Thanks, Interwebz) ###############
####################################################################################################
## Ref: https://unix.stackexchange.com/questions/87200/change-permissions-for-a-symbolic-link
## Ref: https://serverfault.com/questions/939682/lets-encrypt-certificate-permissions
## Ref: https://community.letsencrypt.org/t/recommended-permissions-on-files-distributed-by-lets-encrypt/104266
## SS_EOF