Provide a builtin default for $NIX_SSL_CERT_FILE
This is mostly to ensure that when Nix is started on macOS via a launchd service or sshd (for a remote build), it gets a certificate bundle.
This commit is contained in:
		
							parent
							
								
									7f5b750b40
								
							
						
					
					
						commit
						847f19a5f7
					
				
					 3 changed files with 13 additions and 9 deletions
				
			
		|  | @ -12,10 +12,5 @@ | |||
|     <string>/var/log/nix-daemon.log</string> | ||||
|     <key>StandardOutPath</key> | ||||
|     <string>/dev/null</string> | ||||
|     <key>EnvironmentVariables</key> | ||||
|     <dict> | ||||
|       <key>NIX_SSL_CERT_FILE</key> | ||||
|       <string>/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt</string> | ||||
|     </dict> | ||||
|   </dict> | ||||
| </plist> | ||||
|  |  | |||
|  | @ -221,9 +221,10 @@ struct CurlDownloader : public Downloader | |||
|             if (request.head) | ||||
|                 curl_easy_setopt(req, CURLOPT_NOBODY, 1); | ||||
| 
 | ||||
|             if (request.verifyTLS) | ||||
|                 curl_easy_setopt(req, CURLOPT_CAINFO, settings.caFile.c_str()); | ||||
|             else { | ||||
|             if (request.verifyTLS) { | ||||
|                 if (settings.caFile != "") | ||||
|                     curl_easy_setopt(req, CURLOPT_CAINFO, settings.caFile.c_str()); | ||||
|             } else { | ||||
|                 curl_easy_setopt(req, CURLOPT_SSL_VERIFYPEER, 0); | ||||
|                 curl_easy_setopt(req, CURLOPT_SSL_VERIFYHOST, 0); | ||||
|             } | ||||
|  |  | |||
|  | @ -41,7 +41,15 @@ Settings::Settings() | |||
| { | ||||
|     buildUsersGroup = getuid() == 0 ? "nixbld" : ""; | ||||
|     lockCPU = getEnv("NIX_AFFINITY_HACK", "1") == "1"; | ||||
|     caFile = getEnv("NIX_SSL_CERT_FILE", getEnv("SSL_CERT_FILE", "/etc/ssl/certs/ca-certificates.crt")); | ||||
| 
 | ||||
|     caFile = getEnv("NIX_SSL_CERT_FILE", getEnv("SSL_CERT_FILE", "")); | ||||
|     if (caFile == "") { | ||||
|         for (auto & fn : {"/etc/ssl/certs/ca-certificates.crt", "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt"}) | ||||
|             if (pathExists(fn)) { | ||||
|                 caFile = fn; | ||||
|                 break; | ||||
|             } | ||||
|     } | ||||
| 
 | ||||
|     /* Backwards compatibility. */ | ||||
|     auto s = getEnv("NIX_REMOTE_SYSTEMS"); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue