diff --git a/indra/llfilesystem/lldir_linux.cpp b/indra/llfilesystem/lldir_linux.cpp
index 2041a091c54a756992b38300ab294b9597d9df36..376457477007b4724fee4351b9a4ce94052c478a 100644
--- a/indra/llfilesystem/lldir_linux.cpp
+++ b/indra/llfilesystem/lldir_linux.cpp
@@ -205,7 +205,15 @@ void LLDir_Linux::initAppDirs(const std::string &app_name,
         LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
     }
 
-    mCAFile = getExpandedFilename(LL_PATH_APP_SETTINGS, "ca-bundle.crt");
+    std::string ca_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "ca-bundle.crt");
+    if (!LLFile::isfile(ca_path))
+    {
+        mCAFile = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, ".." ,"app_settings", "ca-bundle.crt");
+    }
+    else
+    {
+        mCAFile = ca_path;
+    }
 }
 
 U32 LLDir_Linux::countFilesInDir(const std::string &dirname, const std::string &mask)