Compare commits
	
		
			7 Commits
		
	
	
		
			main
			...
			d7515a1ff5
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d7515a1ff5 | |||
| 47dd3267f5 | |||
| 17161c39ca | |||
| 979027e192 | |||
| f1f28a80f1 | |||
| 8ae8a88684 | |||
| f7a618a10a | 
| @ -1,5 +1,9 @@ | |||||||
| base_domain: "dev.local" | base_domain: "dev.local" | ||||||
| self_signed: false | self_signed: true | ||||||
|  | generate_cert: | ||||||
|  |   # only copy existing if both are false | ||||||
|  |   root: false | ||||||
|  |   wildcard: false | ||||||
| admin_email: "lukas@kucharczyk.xyz" | admin_email: "lukas@kucharczyk.xyz" | ||||||
| server_ip: "192.168.0.104" | server_ip: "192.168.0.104" | ||||||
| data_folder: "/home/vagrant/docker-data" | data_folder: "/home/vagrant/docker-data" | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								roles/nginx/files/dev.local.crt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								roles/nginx/files/dev.local.crt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | |||||||
|  | -----BEGIN CERTIFICATE----- | ||||||
|  | MIIDNTCCAh0CFA+NVMwkGKvL8NbRd7waRkEHYcf/MA0GCSqGSIb3DQEBCwUAMFUx | ||||||
|  | CzAJBgNVBAYTAkNaMQ8wDQYDVQQHDAZQcmFndWUxEDAOBgNVBAMMB0hvbWVsYWIx | ||||||
|  | IzAhBgkqhkiG9w0BCQEWFGx1a2FzQGt1Y2hhcmN6eWsueHl6MB4XDTIxMDUxMzIy | ||||||
|  | MDA1NloXDTMxMDUxMTIyMDA1NlowWTELMAkGA1UEBhMCQ1oxDzANBgNVBAcMBlBy | ||||||
|  | YWd1ZTEUMBIGA1UEAwwLKi5kZXYubG9jYWwxIzAhBgkqhkiG9w0BCQEWFGx1a2Fz | ||||||
|  | QGt1Y2hhcmN6eWsueHl6MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA | ||||||
|  | 0/jsQ6h6PodfYxTSAwUIY9+AXQ519Km4YNnxH5Ma3AjFH0asJyYR/CC6Zx4VOI1c | ||||||
|  | ZvelLHH/fonuLygSVc9zG5e3k62m6WHxZDDD0GidbmsgPMfPK5r1m9B2McbqWlVD | ||||||
|  | R0Y7FuGCQb0PqClJu86knw2kaYaFHrMVyBgZXAqXfEYIVJJ5SL8Yzo/lyoSHwlmk | ||||||
|  | lZ3LjnvlJ9IAOVpoWiuxmCzzEpGWQyve47HgyN5Q6Um8C0hgwj9fbA9L8Ns8PKt3 | ||||||
|  | y+ypFJMO8gXsup4h7VhRz8KpqdBpo9ghMsvxTAUiPGkerUEjqiIFK2Iz1bZ8yL5d | ||||||
|  | /Gh0EM6ii2FSwsTpVzJ0xQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBjaFbfxfut | ||||||
|  | blYjPZ3mn1hbo3w5kqo9Ly7OLU4mCoK/DFzUBJbIj471B+7cK8hjmvzDUCQxRQWx | ||||||
|  | pBOBzOR4VSF4Z/xKKc1tWQJSC1r5JP0qmkYrmgIgLVi/gdZVYc7qLQbAlJhIOqD1 | ||||||
|  | vQnXrBRqUm7J2ThqFdBuILvR20Pkoa2GnH3ufnQvdSs4WPWocR+fKYbx/DKjpAbU | ||||||
|  | GWg1HnL+7PiflV1HDAkc2kiNQy70/bxcQq1HvQRxjm5C15ojdVzyqPy+CwQo+JOd | ||||||
|  | IdueOS9mM6CQATnwQxK0XKkyH1yI9M83ahQbArwWTzejRWJQd0xYWdQgiEr4aWWV | ||||||
|  | DONUin6JUgVV | ||||||
|  | -----END CERTIFICATE----- | ||||||
							
								
								
									
										17
									
								
								roles/nginx/files/dev.local.csr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								roles/nginx/files/dev.local.csr
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | -----BEGIN CERTIFICATE REQUEST----- | ||||||
|  | MIICnjCCAYYCAQAwWTELMAkGA1UEBhMCQ1oxDzANBgNVBAcMBlByYWd1ZTEUMBIG | ||||||
|  | A1UEAwwLKi5kZXYubG9jYWwxIzAhBgkqhkiG9w0BCQEWFGx1a2FzQGt1Y2hhcmN6 | ||||||
|  | eWsueHl6MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0/jsQ6h6Podf | ||||||
|  | YxTSAwUIY9+AXQ519Km4YNnxH5Ma3AjFH0asJyYR/CC6Zx4VOI1cZvelLHH/fonu | ||||||
|  | LygSVc9zG5e3k62m6WHxZDDD0GidbmsgPMfPK5r1m9B2McbqWlVDR0Y7FuGCQb0P | ||||||
|  | qClJu86knw2kaYaFHrMVyBgZXAqXfEYIVJJ5SL8Yzo/lyoSHwlmklZ3LjnvlJ9IA | ||||||
|  | OVpoWiuxmCzzEpGWQyve47HgyN5Q6Um8C0hgwj9fbA9L8Ns8PKt3y+ypFJMO8gXs | ||||||
|  | up4h7VhRz8KpqdBpo9ghMsvxTAUiPGkerUEjqiIFK2Iz1bZ8yL5d/Gh0EM6ii2FS | ||||||
|  | wsTpVzJ0xQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAD9stDlWNlzkGFsTJc36 | ||||||
|  | CfT7/qovjmxWGJLsuczU7oBwf6nwPuV0W3fUvl2tqz5Nnff4wOnKkRlrR54R0Obl | ||||||
|  | 6KgebvwjACypYkFcL075qrdBpm52yiDWfE7ZOAU7tRCZ7DtMeEtSx/g/03bVp0n1 | ||||||
|  | 7rZm2eeiXB/m7VqabxK1eRwnDktXGuRWpRK7OpQQ0UuKSTlRsI8o4N4r0af8DInP | ||||||
|  | C3mWATJ56dsWaVhW1fBvSFAjrdho1vPadyC2Lb71MyM1H8IQSW8pQlyvAOlw+JVE | ||||||
|  | iEaTYt7miCODHzKSMv73Or2XGYMEFtoLDot3B+rBQun8TQwujDrMA7KU25NcgfQ+ | ||||||
|  | d+Y= | ||||||
|  | -----END CERTIFICATE REQUEST----- | ||||||
							
								
								
									
										28
									
								
								roles/nginx/files/dev.local.key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								roles/nginx/files/dev.local.key
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | -----BEGIN PRIVATE KEY----- | ||||||
|  | MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDT+OxDqHo+h19j | ||||||
|  | FNIDBQhj34BdDnX0qbhg2fEfkxrcCMUfRqwnJhH8ILpnHhU4jVxm96Uscf9+ie4v | ||||||
|  | KBJVz3Mbl7eTrabpYfFkMMPQaJ1uayA8x88rmvWb0HYxxupaVUNHRjsW4YJBvQ+o | ||||||
|  | KUm7zqSfDaRphoUesxXIGBlcCpd8RghUknlIvxjOj+XKhIfCWaSVncuOe+Un0gA5 | ||||||
|  | WmhaK7GYLPMSkZZDK97jseDI3lDpSbwLSGDCP19sD0vw2zw8q3fL7KkUkw7yBey6 | ||||||
|  | niHtWFHPwqmp0Gmj2CEyy/FMBSI8aR6tQSOqIgUrYjPVtnzIvl38aHQQzqKLYVLC | ||||||
|  | xOlXMnTFAgMBAAECggEBAMuHAOPdyrJrLM1n2lYH6QxsN0YicmOe6mgkGv8kMe// | ||||||
|  | g7YKF5XnWfFqQ1BrdBi+snAzbCcGtjj7mvUwVpqJ+44M2Lk1TURdRHfc0sczC6ZP | ||||||
|  | ub5iY6sMuLMJL9OPmMlvgI/ZATdxA663J2dhbWikezA02x5viTX24f0kFoVnrhgl | ||||||
|  | LYSVOVOl94vk1jByJVtJeusd5JwF6JZ6Ws8My7Fzh3hHMepcB5uVfYr20O7FZHEX | ||||||
|  | DAlVN7MSh7nM0a4WsZPg5S5KLMZlhTyqosRwx9n5Y08S8BRYMLNyetRICDe6MIn9 | ||||||
|  | cJllAR/W51WsvmH/LHmLTRA6eC4rxO744z0DDpGuc6kCgYEA+44eS79TCRG6zQjo | ||||||
|  | Jt2VMcdUpqTwcXWwllpZh071SV3wMQTlzRwAM8QdPga5O0qYe/UBVxx4dh5MinpN | ||||||
|  | TnGP+4sBlME2Q8iUml5jNU8Fwuo1XZWkdrTmeJl/DyJ2iqokPyJSp/iFhFWuNhJS | ||||||
|  | eNgmu7gvLPMhQjdfTDsom4OSAt8CgYEA17fBltxcWmQV6XxkVbVLnrdesvGv8zGg | ||||||
|  | VIod02wW39G0WR5FEffu+TEOcsdkQGqH9gCUkyEomGzZKGDmzCu+PpLjb1KIBkf+ | ||||||
|  | 8tt4o4Za91XgOm79m2sP5qczwXqUOsgRZBNPTDrbwIA4Y4pMYoxwx4aQF9DLl0Vt | ||||||
|  | jqNhHtn2ANsCgYA0LcSG/cahiPXwdbqB5VB/JNOgRXJCdqEMbu1HLc+fSkb6RAPO | ||||||
|  | ydIY6sMODKL7c3uxqp5+jT9HcP17c+b5MIEnMiw/yNwSr1ZztsRpWFzfk2lCYjnd | ||||||
|  | DaUIuv4qC4H/PU+LcPkoMlqvmn4qZR6KRnuyUIAomL37WDUCQPspVt9AjQKBgQDB | ||||||
|  | 1euNbLtLuc16vXzHCx5FIw5kCwqIo5om/OiqFuFDAwNkZO+5oqjIoA0UlBiATXmY | ||||||
|  | UpMu1cfNl1lWkCQzaEcNoR3e5TE3O7Bad12iytKolzDiMOOPqRdjsfCutT/Gxgni | ||||||
|  | e/twSx81jcGdqCLVFs8sarzFuaeHaSp11lcpyr7jqwKBgQDWL0Dx6/ybyma/NcWD | ||||||
|  | liF6OMkxwvA58c7eoG2pOSENxMhe5rA9uzaYj0jjLCEIwF5X5uI5vsnnl1vKtfA4 | ||||||
|  | YAly4qve/lhCqM9YvRi1l2Oi5aeZLqVKF8tA81k5kK/O7dKjHvq8hLIipcQ2Esfy | ||||||
|  | 3X+EPcWIxFSX64m5+Ib+cch6hg== | ||||||
|  | -----END PRIVATE KEY----- | ||||||
| @ -1,24 +0,0 @@ | |||||||
| -----BEGIN CERTIFICATE----- |  | ||||||
| MIID8zCCAtugAwIBAgIUPXGk144K0wqfLNwO7MK4g3ddbewwDQYJKoZIhvcNAQEL |  | ||||||
| BQAwgYgxCzAJBgNVBAYTAkNaMRMwEQYDVQQIDApTb21lLVN0YXRlMQ8wDQYDVQQH |  | ||||||
| DAZQcmFndWUxGDAWBgNVBAoMD0t1Y2hhcmN6eWsgTHRkLjEUMBIGA1UEAwwLKi5k |  | ||||||
| ZXYubG9jYWwxIzAhBgkqhkiG9w0BCQEWFGx1a2FzQGt1Y2hhcmN6eWsueHl6MB4X |  | ||||||
| DTIxMDQyNjIxMDA1OFoXDTMxMDQyNDIxMDA1OFowgYgxCzAJBgNVBAYTAkNaMRMw |  | ||||||
| EQYDVQQIDApTb21lLVN0YXRlMQ8wDQYDVQQHDAZQcmFndWUxGDAWBgNVBAoMD0t1 |  | ||||||
| Y2hhcmN6eWsgTHRkLjEUMBIGA1UEAwwLKi5kZXYubG9jYWwxIzAhBgkqhkiG9w0B |  | ||||||
| CQEWFGx1a2FzQGt1Y2hhcmN6eWsueHl6MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A |  | ||||||
| MIIBCgKCAQEAx/LUqs2Z8GS9x0KZrlrdL9Ndsskw5Q8EYGNJDxqebncMAkFbYbi1 |  | ||||||
| ZhHz4mnVzLKFg6mQ7yXdnUz5DFCltEQcQHpIULPcbLyj3XXBA0Hd40Hc8+7hghJ0 |  | ||||||
| Un9tH47JwMetnlNQcvmY2XJfQ+MV92pmIh7qzvkyj1EgjkNaTdf87zYl6zYnPJjy |  | ||||||
| MU7K3KMikPd8jECh5zhsrw9imgr86bqtWBjNkcA3F9Oauui6UhyN3/eGIa74+vx6 |  | ||||||
| nYomiMSjuN3zkN0cyxX/PFVOZZOzTbmHUIPhIN3p5pXLhqA9tc3ePpifRATzU+Sn |  | ||||||
| ePPM++PVvSgf2PMFvTtPC/z/jKXHDB4C2QIDAQABo1MwUTAdBgNVHQ4EFgQUUa10 |  | ||||||
| hrJc8F/WBDC0rWVISN5o6C8wHwYDVR0jBBgwFoAUUa10hrJc8F/WBDC0rWVISN5o |  | ||||||
| 6C8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAZOwIDGg+CzK3 |  | ||||||
| /wwIE3ttv/OeU1lHu8I87dR51ixG6kGfj6+iKyP9OhA4If+mRIlMRSmigZe/ENbw |  | ||||||
| 2tVDcoIogu8zw3SLlpMzxSDiAE3Ro4O60x8IQ7+HNOvbfiVq5Hdhb39T9VvDkNv8 |  | ||||||
| k9mectnlqTNRmbw9oYDbg7zjY+5yGz264QeakF2UwJdtGlDUHVt2w83WJLY/rYAv |  | ||||||
| uuowVf4Tqt1evIr5lfsxVbRO9oVzBnbivYZPe5hjNxOBXTti17DfedIC+y6bLavm |  | ||||||
| VNlba18xxCDEPadyJnOSLFQlD0aoMoV7m5hZCJZEciw6X/JpX3SIpRF0MQm02RPi |  | ||||||
| wncx4+iqGA== |  | ||||||
| -----END CERTIFICATE----- |  | ||||||
| @ -1,28 +0,0 @@ | |||||||
| -----BEGIN PRIVATE KEY----- |  | ||||||
| MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDH8tSqzZnwZL3H |  | ||||||
| QpmuWt0v012yyTDlDwRgY0kPGp5udwwCQVthuLVmEfPiadXMsoWDqZDvJd2dTPkM |  | ||||||
| UKW0RBxAekhQs9xsvKPddcEDQd3jQdzz7uGCEnRSf20fjsnAx62eU1By+ZjZcl9D |  | ||||||
| 4xX3amYiHurO+TKPUSCOQ1pN1/zvNiXrNic8mPIxTsrcoyKQ93yMQKHnOGyvD2Ka |  | ||||||
| Cvzpuq1YGM2RwDcX05q66LpSHI3f94Yhrvj6/HqdiiaIxKO43fOQ3RzLFf88VU5l |  | ||||||
| k7NNuYdQg+Eg3enmlcuGoD21zd4+mJ9EBPNT5Kd488z749W9KB/Y8wW9O08L/P+M |  | ||||||
| pccMHgLZAgMBAAECggEANoUiNAin5wKxNLoWSZKBKV9K90sgx/SWTuoDq9ioRpqz |  | ||||||
| bZIApt7Ep7ZRd/U/1PcArOv5lxwOF6w7ZH5BEKxZv8MYINlKS2QMkoBfRtIY/LSi |  | ||||||
| 2OjUGLGLgks4qBg5LxXDY554G0GvyesDyvEKtlIO01L218TfYnDOnbwDzaINV/RC |  | ||||||
| W/nbyx8Z5teorU+vS5IlDaNMDSFkAMFOfQ8gNrwCaWxX2FJRUyyzM/54J4bNgGUi |  | ||||||
| +3APpt8w4N54CrMbI6FzyQhUbAY9MRFryaLgw22v0haiM1nAE9BWpU5m20Q8Ilx8 |  | ||||||
| f1e9PVDqwTXshxx01b0Z6RrHZViyi9+XOo6QU+4xYQKBgQDrYQZ8trvV3j+1E6Eu |  | ||||||
| rESMni+93ZbhRMbVVUDOhxU7BzfsFnvGodQms9sCaNQrexML0xH9DhWbssCDOvOm |  | ||||||
| MWSOnxUA1yivMiYvE4FzEM5iRRyFSjE3uS3+FZ0yY3iUr1vf9G9fJrtt/ag05AF5 |  | ||||||
| ZywhmvvtiA06F9+/qZzMW4jxfQKBgQDZdy/tYZQI9PlfznI6juy/Kx310vGNN9aW |  | ||||||
| Zzv3WRon40awiRMxUhGViiq9eD1IEzLDIXGXHdOI4E+DQUd+pn7Cr08QoWbOQk2n |  | ||||||
| BujCDY0mevc2kDi5NASa2SUFvUXo/vCqZdfP/EA7BudYwknZp3hCV+nZt6DcW+M2 |  | ||||||
| +WLYjxTVjQKBgGs/QTpv9HQFGRgDgqyGd5FuvigPoCCyOrqXZrjzmbvUlSlwMSOX |  | ||||||
| NtgPmRmm9A1/vXTkzkx0L2pK7yacJMoztTK6z1IbtwDko7tNcu0f2jmybcVZwcU3 |  | ||||||
| Dfq4lHCSHC37HKyVbm13c20xZ4P546YSWWxSdrmLBSPUHvHwcW43wtTtAoGBAMOb |  | ||||||
| yAqYiRX9dQrOokU2JpJWcF6cXhaOsYEcXv5AsZxLfVxyEEd+8L44R/Wh4E2ipziK |  | ||||||
| LqildY9bZWpFH9A2ZzMric0FwXmqfjrNpjRXCC4i0ZfM5pkAx1uaEwk0lVvdZhGA |  | ||||||
| Bj3ZQtVVgmd+a/tR/oR+m6Tw3csZBCqA7H6rRSxJAoGBAIFd0PRdKm5+mUc575GQ |  | ||||||
| sxVznovODCdRyOAeD9IKyCcpMo8zB9uiNDRPG/sUebnowC3v7EeCYUUHlUDtsSjc |  | ||||||
| BZyasg71mrZElWg2mDonw/J9fcrEPGrh59wmqk49MLvzB0An/eP+gGK3RFgbijkN |  | ||||||
| EZcByagGNGdICcaaxr+RhgcU |  | ||||||
| -----END PRIVATE KEY----- |  | ||||||
							
								
								
									
										28
									
								
								roles/nginx/files/rootca.key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								roles/nginx/files/rootca.key
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | -----BEGIN PRIVATE KEY----- | ||||||
|  | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDAH/nCewvHL6pP | ||||||
|  | tGUyUwVBiL6T3er0mS4rM6ifoQxEGb1EsURyngik0I1IaPn9ciI09JnUdXpKnMS3 | ||||||
|  | /jhHlkibD93datDPHEdPTdw1TZmQLcJyWW5MQ52/DMKDokCzWdQNENEL7I9A8GUD | ||||||
|  | V1Rl8E3G/uKHAzj2ULI1S+MwY+5URF3MLABmxFEfWcIBNef42wQ67hx74WlwOVVK | ||||||
|  | GNTVyd6EkRXDXu/YoMnZUdWOUxk6Bo9eKALOiVoTDtJOgubs5LT8MmhIosI6SqDM | ||||||
|  | lPq7huLLPD09egDrQqU13LfOG/+N7LXwsTcQXNV6irzMgNTE7vsWDyO+q8m4J1BU | ||||||
|  | sMWHnOpxAgMBAAECggEAD6SK2WLbWqRu4X52ntpTmzpfCfsPnkq6j5ntKNIcBY9y | ||||||
|  | 8ZzdTdfALGsula62bARW9KjVvY6zHlAVVEXGn02FK9rm3ZhM2BAdXj+gplZjInIX | ||||||
|  | WugdKuh2d4+6Zq1XR0MRGN89phLktwzbrKH3pTUjoAgwuX1xrdx0JhK/tLjuNr4W | ||||||
|  | CBtmz2X6lzKeD9S7PHu33Tqseg1GCfQYBKyDrCOgWBq8/V0eoAQB3g4t3ZIfzAYN | ||||||
|  | Ft4BEB3prNBgLhuea43DRNcUnIu2k9/LzLTpGJE8oqM55yUEULdWIvRQJHEDfah2 | ||||||
|  | 1YiDCzzd3CCYgk6CjRaEihL+WPJfohKzDghnrhVp4QKBgQDw6CTWcm6S7/+eO6qP | ||||||
|  | PnyFPK/1ajCwc1KsVEjiS2OQ9WMK6d8pfA9o6lCjlRcu8kCO6CXQS8vXwg7G3PBY | ||||||
|  | 7ndMUoyTD5X32uG/VXY1LxYtCdrjKWsnZP/cuTtcodaG/Sp+5Pa1eO00cG6ckCQr | ||||||
|  | FU8BLqeLhOSjlFinvoEVqPFriwKBgQDMKW2xTeqQpbLuTgvGcFglhTiyjGzIwtf7 | ||||||
|  | Du0ZqF7LpzY95CUBOL9YZBBcAzarCnemzDeMy7aDuIesVP0JPGdTC2f4W/X++WUO | ||||||
|  | 7CXJH7Xt/ULQLXDwRyQiMCKNCCNQtpDfP/Uzf6Ts/F3rIYre3NzscTbUradD3RMd | ||||||
|  | OqyIyzwxcwKBgBGhK3D2Ftlx7sbpnuW0sPAfLNFM4BtJlTc/Q8YrtjGZg5H843Pp | ||||||
|  | vEb1Psl506R/3fGXU40WvugfL22mJYCckuZm9Bqe/V6SCgsyeeASfhD1s6sEEO9l | ||||||
|  | GMRSWeHBhi2CwWVf5B4Lp3A6+h1C/yKYAJwZifFP3FuMM6Cy9Eddga1ZAoGBAKCR | ||||||
|  | SKM0y3F90E8Z9KrZ+olv0FqklH4Et8bNQ251fDChTsi4YN4oGl1TPYaQRHOa5OW7 | ||||||
|  | IUlLgjzwaUwA/40/A2hNxTSQZtVkobVtxn36waPuFpkR1Aw1d1aoEtRmfRfirefX | ||||||
|  | LmqVTknQZbEijUyf2eTfWadE+BMokPrhBYcEiE+/AoGBANdhUebsG0AGYvM2SuHy | ||||||
|  | UQFmwamIzSUdBPXvNDALoCOi/9t0ySakxmBOyaUFY6k1WOW/fvBJ4eTGdlIUO6Ee | ||||||
|  | v1vMxpjLb8Z5H19qK/qSu1Q4PI70q0uThaWFFQ4Hhadb1m1vfxZ7u/jqx3rxCVqD | ||||||
|  | dw4+Bq5YpiLXR11wW29gx6dx | ||||||
|  | -----END PRIVATE KEY----- | ||||||
							
								
								
									
										21
									
								
								roles/nginx/files/rootca.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								roles/nginx/files/rootca.pem
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | |||||||
|  | -----BEGIN CERTIFICATE----- | ||||||
|  | MIIDizCCAnOgAwIBAgIUYUlmu4VunV3uvnrMuV9MOXRJmjowDQYJKoZIhvcNAQEL | ||||||
|  | BQAwVTELMAkGA1UEBhMCQ1oxDzANBgNVBAcMBlByYWd1ZTEQMA4GA1UEAwwHSG9t | ||||||
|  | ZWxhYjEjMCEGCSqGSIb3DQEJARYUbHVrYXNAa3VjaGFyY3p5ay54eXowHhcNMjEw | ||||||
|  | NTEzMjIwMDU1WhcNMzEwNTExMjIwMDU1WjBVMQswCQYDVQQGEwJDWjEPMA0GA1UE | ||||||
|  | BwwGUHJhZ3VlMRAwDgYDVQQDDAdIb21lbGFiMSMwIQYJKoZIhvcNAQkBFhRsdWth | ||||||
|  | c0BrdWNoYXJjenlrLnh5ejCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB | ||||||
|  | AMAf+cJ7C8cvqk+0ZTJTBUGIvpPd6vSZLiszqJ+hDEQZvUSxRHKeCKTQjUho+f1y | ||||||
|  | IjT0mdR1ekqcxLf+OEeWSJsP3d1q0M8cR09N3DVNmZAtwnJZbkxDnb8MwoOiQLNZ | ||||||
|  | 1A0Q0Qvsj0DwZQNXVGXwTcb+4ocDOPZQsjVL4zBj7lREXcwsAGbEUR9ZwgE15/jb | ||||||
|  | BDruHHvhaXA5VUoY1NXJ3oSRFcNe79igydlR1Y5TGToGj14oAs6JWhMO0k6C5uzk | ||||||
|  | tPwyaEiiwjpKoMyU+ruG4ss8PT16AOtCpTXct84b/43stfCxNxBc1XqKvMyA1MTu | ||||||
|  | +xYPI76rybgnUFSwxYec6nECAwEAAaNTMFEwHQYDVR0OBBYEFMIPcuQ9X1fX4grD | ||||||
|  | O+mb1PipZfPYMB8GA1UdIwQYMBaAFMIPcuQ9X1fX4grDO+mb1PipZfPYMA8GA1Ud | ||||||
|  | EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHKHCIGmFygvzyXENSbzFcwI | ||||||
|  | vSLkB/pb3NLXIcFtFI2hu3NdXkf2Lf/YdSTeXz0TS9M4EyDouVg4rKrGfgQCXwpd | ||||||
|  | FK05b9x2MBrKm1sLMr8gofYvKYlRzF+Fedr/d1S9ze/FE2UbMuzjc70vjRpKd8yN | ||||||
|  | nRATyJdicWUqhZZC2TB2ko3G6vzoUxIHQH7PPHjpJW1kYspio/+ohYSmh9rpqeSG | ||||||
|  | MHYyBsjSbEJJOdkaWWxc+OWhLuhfD4lZlmmzyVBBQ0HQ/shztPaWYogHVpU9yAEW | ||||||
|  | kasPGcwXxrpIaQo06U5qmmDbwfUadljfaOicMuu4Rv2xQPGvdNy49uYdSERlKpQ= | ||||||
|  | -----END CERTIFICATE----- | ||||||
							
								
								
									
										1
									
								
								roles/nginx/files/rootca.srl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/nginx/files/rootca.srl
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | 0F8D54CC2418ABCBF0D6D177BC1A46410761C7FF | ||||||
							
								
								
									
										136
									
								
								roles/nginx/files/snippets/block-exploits.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								roles/nginx/files/snippets/block-exploits.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,136 @@ | |||||||
|  | ## Block SQL injections | ||||||
|  | set $block_sql_injections 0; | ||||||
|  |  | ||||||
|  | if ($query_string ~ "union.*select.*\(") { | ||||||
|  | 	set $block_sql_injections 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "union.*all.*select.*") { | ||||||
|  | 	set $block_sql_injections 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "concat.*\(") { | ||||||
|  | 	set $block_sql_injections 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($block_sql_injections = 1) { | ||||||
|  | 	return 403; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ## Block file injections | ||||||
|  | set $block_file_injections 0; | ||||||
|  |  | ||||||
|  | if ($query_string ~ "[a-zA-Z0-9_]=http://") { | ||||||
|  | 	set $block_file_injections 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") { | ||||||
|  | 	set $block_file_injections 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") { | ||||||
|  | 	set $block_file_injections 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($block_file_injections = 1) { | ||||||
|  | 	return 403; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ## Block common exploits | ||||||
|  | set $block_common_exploits 0; | ||||||
|  |  | ||||||
|  | if ($query_string ~ "(<|%3C).*script.*(>|%3E)") { | ||||||
|  | 	set $block_common_exploits 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") { | ||||||
|  | 	set $block_common_exploits 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") { | ||||||
|  | 	set $block_common_exploits 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "proc/self/environ") { | ||||||
|  | 	set $block_common_exploits 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") { | ||||||
|  | 	set $block_common_exploits 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "base64_(en|de)code\(.*\)") { | ||||||
|  | 	set $block_common_exploits 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($block_common_exploits = 1) { | ||||||
|  | 	return 403; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ## Block spam | ||||||
|  | set $block_spam 0; | ||||||
|  |  | ||||||
|  | if ($query_string ~ "\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b") { | ||||||
|  | 	set $block_spam 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "\b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b") { | ||||||
|  | 	set $block_spam 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "\b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b") { | ||||||
|  | 	set $block_spam 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($query_string ~ "\b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b") { | ||||||
|  | 	set $block_spam 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($block_spam = 1) { | ||||||
|  | 	return 403; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ## Block user agents | ||||||
|  | set $block_user_agents 0; | ||||||
|  |  | ||||||
|  | # Disable Akeeba Remote Control 2.5 and earlier | ||||||
|  | if ($http_user_agent ~ "Indy Library") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | # Common bandwidth hoggers and hacking tools. | ||||||
|  | if ($http_user_agent ~ "libwww-perl") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($http_user_agent ~ "GetRight") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($http_user_agent ~ "GetWeb!") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($http_user_agent ~ "Go!Zilla") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($http_user_agent ~ "Download Demon") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($http_user_agent ~ "Go-Ahead-Got-It") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($http_user_agent ~ "TurnitinBot") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($http_user_agent ~ "GrabNet") { | ||||||
|  | 	set $block_user_agents 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if ($block_user_agents = 1) { | ||||||
|  | 	return 403; | ||||||
|  | } | ||||||
							
								
								
									
										31
									
								
								roles/nginx/files/snippets/cache-assets.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								roles/nginx/files/snippets/cache-assets.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | |||||||
|  | location ~* ^.*\.(css|js|jpe?g|gif|png|woff|eot|ttf|svg|ico|css\.map|js\.map)$ { | ||||||
|  | 	if_modified_since off; | ||||||
|  |  | ||||||
|  | 	# use the public cache | ||||||
|  | 	proxy_cache public-cache; | ||||||
|  | 	proxy_cache_key $host$request_uri; | ||||||
|  |  | ||||||
|  | 	# ignore these headers for media | ||||||
|  | 	proxy_ignore_headers Set-Cookie Cache-Control Expires X-Accel-Expires; | ||||||
|  |  | ||||||
|  | 	# cache 200s and also 404s (not ideal but there are a few 404 images for some reason) | ||||||
|  | 	proxy_cache_valid any 30m; | ||||||
|  | 	proxy_cache_valid 404 1m; | ||||||
|  |  | ||||||
|  | 	# strip this header to avoid If-Modified-Since requests | ||||||
|  | 	proxy_hide_header Last-Modified; | ||||||
|  | 	proxy_hide_header Cache-Control; | ||||||
|  | 	proxy_hide_header Vary; | ||||||
|  |  | ||||||
|  | 	proxy_cache_bypass 0; | ||||||
|  | 	proxy_no_cache 0; | ||||||
|  |  | ||||||
|  | 	proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504 http_404; | ||||||
|  | 	proxy_connect_timeout 5s; | ||||||
|  | 	proxy_read_timeout 45s; | ||||||
|  |  | ||||||
|  | 	expires @30m; | ||||||
|  | 	access_log  off; | ||||||
|  |  | ||||||
|  | 	include conf.d/include/proxy.conf; | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								roles/nginx/files/snippets/force-ssl.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								roles/nginx/files/snippets/force-ssl.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | if ($scheme = "http") { | ||||||
|  | 	return 301 https://$host$request_uri; | ||||||
|  | } | ||||||
							
								
								
									
										29
									
								
								roles/nginx/files/snippets/letsencrypt-acme-challenge.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								roles/nginx/files/snippets/letsencrypt-acme-challenge.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | |||||||
|  | # Rule for legitimate ACME Challenge requests (like /.well-known/acme-challenge/xxxxxxxxx) | ||||||
|  | # We use ^~ here, so that we don't check other regexes (for speed-up). We actually MUST cancel | ||||||
|  | # other regex checks, because in our other config files have regex rule that denies access to files with dotted names. | ||||||
|  | location ^~ /.well-known/acme-challenge/ { | ||||||
|  | 	# Since this is for letsencrypt authentication of a domain and they do not give IP ranges of their infrastructure | ||||||
|  | 	# we need to open up access by turning off auth and IP ACL for this location. | ||||||
|  | 	auth_basic off; | ||||||
|  | 	allow all; | ||||||
|  |  | ||||||
|  | 	# Set correct content type. According to this: | ||||||
|  | 	# https://community.letsencrypt.org/t/using-the-webroot-domain-verification-method/1445/29 | ||||||
|  | 	# Current specification requires "text/plain" or no content header at all. | ||||||
|  | 	# It seems that "text/plain" is a safe option. | ||||||
|  | 	default_type "text/plain"; | ||||||
|  |  | ||||||
|  | 	# This directory must be the same as in /etc/letsencrypt/cli.ini | ||||||
|  | 	# as "webroot-path" parameter. Also don't forget to set "authenticator" parameter | ||||||
|  | 	# there to "webroot". | ||||||
|  | 	# Do NOT use alias, use root! Target directory is located here: | ||||||
|  | 	# /var/www/common/letsencrypt/.well-known/acme-challenge/ | ||||||
|  | 	root /data/letsencrypt-acme-challenge; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | # Hide /acme-challenge subdirectory and return 404 on all requests. | ||||||
|  | # It is somewhat more secure than letting Nginx return 403. | ||||||
|  | # Ending slash is important! | ||||||
|  | location = /.well-known/acme-challenge/ { | ||||||
|  | 	return 404; | ||||||
|  | } | ||||||
							
								
								
									
										7
									
								
								roles/nginx/files/snippets/proxy.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								roles/nginx/files/snippets/proxy.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | add_header       X-Served-By $host; | ||||||
|  | proxy_set_header Host $host; | ||||||
|  | proxy_set_header X-Forwarded-Scheme $scheme; | ||||||
|  | proxy_set_header X-Forwarded-Proto  $scheme; | ||||||
|  | proxy_set_header X-Forwarded-For    $remote_addr; | ||||||
|  | proxy_set_header X-Real-IP          $remote_addr; | ||||||
|  | proxy_pass       $forward_scheme://$server:$port; | ||||||
							
								
								
									
										9
									
								
								roles/nginx/files/snippets/ssl-ciphers.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								roles/nginx/files/snippets/ssl-ciphers.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | ssl_session_timeout 5m; | ||||||
|  | ssl_session_cache shared:SSL:50m; | ||||||
|  |  | ||||||
|  | # intermediate configuration. tweak to your needs. | ||||||
|  | ssl_protocols TLSv1.2 TLSv1.3; | ||||||
|  | ssl_ciphers 'EECDH+AESGCM:AES256+EECDH:AES256+EDH:EDH+AESGCM:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE- | ||||||
|  | ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AE | ||||||
|  | S128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES'; | ||||||
|  | ssl_prefer_server_ciphers on; | ||||||
| @ -1,11 +1,17 @@ | |||||||
|  | # If self_signed = true, in nginx/files: generate root CA (if regenereate_root_ca = true), | ||||||
|  | # and sign a wildcard certificate. Copy certificates to /etc/ssl/. | ||||||
| - name: ensure directories exist | - name: ensure directories exist | ||||||
|   file: |   file: | ||||||
|     path: "{{ item }}" |     path: "{{ item }}" | ||||||
|     state: directory |     state: directory | ||||||
|     mode: '0755' |     mode: '0755' | ||||||
|   loop: |   loop: | ||||||
|     - "{{ nginx_confd_folder }}" |     - "{{ data_folder }}/nginx" | ||||||
| - name: generate and install self-signed certs |     - "{{ data_folder }}/nginx/conf.d" | ||||||
|  |     - "{{ data_folder }}/nginx/sites-enabled" | ||||||
|  |     - "{{ data_folder }}/nginx/sites-available" | ||||||
|  |     - "{{ data_folder }}/nginx/snippets" | ||||||
|  | - name: generate self-signed certs | ||||||
|   import_tasks: self-signed.yml |   import_tasks: self-signed.yml | ||||||
|   when: self_signed |   when: self_signed | ||||||
| - name: create nginx bridge network | - name: create nginx bridge network | ||||||
| @ -14,6 +20,18 @@ | |||||||
|     attachable: true |     attachable: true | ||||||
|     internal: true |     internal: true | ||||||
|     state: present |     state: present | ||||||
|  | - name: copy nginx.conf | ||||||
|  |   template: | ||||||
|  |     src: nginx.conf.j2 | ||||||
|  |     dest: "{{ data_folder }}/nginx/nginx.conf" | ||||||
|  |     mode: '0755' | ||||||
|  | - name: copy snippets | ||||||
|  |   template: | ||||||
|  |     src: "{{ item }}" | ||||||
|  |     dest: "{{ data_folder }}/nginx/snippets/{{ item | basename | regex_replace('.j2$', '') }}" | ||||||
|  |     mode: '0755' | ||||||
|  |   with_fileglob: | ||||||
|  |     - "../templates/snippets/*.conf" | ||||||
| - name: run container | - name: run container | ||||||
|   docker_container: |   docker_container: | ||||||
|     name: 'nginx' |     name: 'nginx' | ||||||
| @ -22,10 +40,13 @@ | |||||||
|       - name: bridge |       - name: bridge | ||||||
|       - name: nginx-internal |       - name: nginx-internal | ||||||
|     volumes: |     volumes: | ||||||
|  |       - "{{ data_folder }}/nginx/conf.d:/etc/nginx/conf.d" | ||||||
|       - "{{ data_folder }}/nginx/nginx.conf:/etc/nginx/nginx.conf" |       - "{{ data_folder }}/nginx/nginx.conf:/etc/nginx/nginx.conf" | ||||||
|       - "{{ data_folder }}/nginx/{{ base_domain }}.key:/etc/nginx/{{ base_domain }}.key" |       - "{{ data_folder }}/nginx/sites-available:/etc/nginx/sites-available" | ||||||
|       - "{{ data_folder }}/nginx/{{ base_domain }}.crt:/etc/nginx/{{ base_domain }}.crt" |       - "{{ data_folder }}/nginx/sites-enabled:/etc/nginx/sites-enabled" | ||||||
|       - "{{ nginx_confd_folder }}:/etc/nginx/conf.d" |       - "{{ data_folder }}/nginx/snippets:/etc/nginx/snippets" | ||||||
|  |       - "{{ data_folder }}/nginx/{{ base_domain }}.key:/etc/ssl/{{ base_domain }}.key" | ||||||
|  |       - "{{ data_folder }}/nginx/{{ base_domain }}.crt:/etc/ssl/{{ base_domain }}.crt" | ||||||
|     ports: |     ports: | ||||||
|       - "80:80" |       - "80:80" | ||||||
|       - "443:443" |       - "443:443" | ||||||
|  | |||||||
| @ -4,34 +4,37 @@ | |||||||
|                     -new \ |                     -new \ | ||||||
|                     -nodes \ |                     -nodes \ | ||||||
|                     -newkey rsa:2048 \ |                     -newkey rsa:2048 \ | ||||||
|                     -keyout "{{ data_folder }}/nginx/rootca.key" \ |                     -keyout "{{ playbook_dir }}/roles/nginx/files/rootca.key" \ | ||||||
|                     -out "{{ data_folder }}/nginx/rootca.pem" \ |                     -out "{{ playbook_dir }}/roles/nginx/files/rootca.pem" \ | ||||||
|                     -sha256 \ |                     -sha256 \ | ||||||
|                     -days 3650 \ |                     -days 3650 \ | ||||||
|                     -subj "/C=CZ/L=Prague/CN=Homelab/emailAddress={{ admin_email }}" |                     -subj "/C=CZ/L=Prague/CN=Homelab/emailAddress={{ admin_email }}" | ||||||
|  |   when: generate_cert.root | ||||||
| - name: generate wildcard csr | - name: generate wildcard csr | ||||||
|   command: openssl req \ |   command: openssl req \ | ||||||
|                     -new \ |                     -new \ | ||||||
|                     -nodes \ |                     -nodes \ | ||||||
|                     -newkey rsa:2048 \ |                     -newkey rsa:2048 \ | ||||||
|                     -keyout "{{ data_folder }}/nginx/{{ base_domain }}.key" \ |                     -keyout "{{ playbook_dir }}/roles/nginx/files/{{ base_domain }}.key" \ | ||||||
|                     -out "{{ data_folder }}/nginx/{{ base_domain }}.csr" \ |                     -out "{{ playbook_dir }}/roles/nginx/files/{{ base_domain }}.csr" \ | ||||||
|                     -subj "/C=CZ/L=Prague/CN=*.{{ base_domain }}/emailAddress={{ admin_email }}" |                     -subj "/C=CZ/L=Prague/CN=*.{{ base_domain }}/emailAddress={{ admin_email }}" | ||||||
|  |   when: generate_cert.wildcard | ||||||
| - name: sign wildcard csr with root ca | - name: sign wildcard csr with root ca | ||||||
|   command: openssl x509 \ |   command: openssl x509 \ | ||||||
|                     -req \ |                     -req \ | ||||||
|                     -in "{{ data_folder }}/nginx/{{ base_domain }}.csr" \ |                     -in "{{ playbook_dir }}/roles/nginx/files/{{ base_domain }}.csr" \ | ||||||
|                     -CA "{{ data_folder }}/nginx/rootca.pem" \ |                     -CA "{{ playbook_dir }}/roles/nginx/files/rootca.pem" \ | ||||||
|                     -CAkey "{{ data_folder }}/nginx/rootca.key" \ |                     -CAkey "{{ playbook_dir }}/roles/nginx/files/rootca.key" \ | ||||||
|                     -CAcreateserial \ |                     -CAcreateserial \ | ||||||
|                     -out "{{ data_folder }}/nginx/{{ base_domain }}.crt" \ |                     -out "{{ playbook_dir }}/roles/nginx/files/{{ base_domain }}.crt" \ | ||||||
|                     -days 3650 \ |                     -days 3650 \ | ||||||
|                     -sha256 |                     -sha256 | ||||||
| - name: install root ca |   when: generate_cert.wildcard | ||||||
|   command: trust anchor "{{ data_folder }}/nginx/rootca.pem" | - name: copy wildcard certificate and key | ||||||
|   become: yes |   copy: | ||||||
| - name: copy .conf file |     src: "{{ item }}" | ||||||
|   template: |     dest: "{{ data_folder }}/nginx/{{ item }}" | ||||||
|     src: nginx.conf.j2 |     mode: '0700' | ||||||
|     dest: "{{ data_folder }}/nginx/nginx.conf" |   loop: | ||||||
|     mode: '0755' |     - "{{ base_domain }}.crt" | ||||||
|  |     - "{{ base_domain }}.key" | ||||||
| @ -27,7 +27,8 @@ http { | |||||||
|  |  | ||||||
|     #gzip  on; |     #gzip  on; | ||||||
|     resolver 127.0.0.11 valid=30; |     resolver 127.0.0.11 valid=30; | ||||||
|     ssl_certificate /etc/nginx/{{ base_domain }}.crt; |     {% if self_signed == true %} | ||||||
|     ssl_certificate_key /etc/nginx/{{ base_domain }}.key; |     include /etc/nginx/snippets/self-signed.conf; | ||||||
|  |     {% endif %} | ||||||
|     include /etc/nginx/conf.d/*.conf; |     include /etc/nginx/conf.d/*.conf; | ||||||
| } | } | ||||||
							
								
								
									
										2
									
								
								roles/nginx/templates/snippets/self-signed.conf.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/nginx/templates/snippets/self-signed.conf.j2
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | ssl_certificate /etc/ssl/{{ base_domain }}.crt; | ||||||
|  | ssl_certificate_key /etc/ssl/{{ base_domain }}.key; | ||||||
		Reference in New Issue
	
	Block a user