Windows CA stores should be opened with read-only flag
@@ -122,7 +122,20 @@ _mongoc_openssl_import_cert_store (LPWSTR store_name,
store_name); /* system store name. "My" or "Root" */
if (cert_store == NULL) {
- MONGOC_WARNING ("error opening system CA store");
+ LPTSTR msg = NULL;
+ FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_ARGUMENT_ARRAY,
+ NULL,
+ GetLastError (),
+ LANG_NEUTRAL,
+ (LPTSTR) &msg,
+ 0,
+ NULL);
+ MONGOC_ERROR ("Can't open CA store: 0x%.8X: '%s'",
+ GetLastError (),
+ msg);
+ LocalFree (msg);
return false;
}
@@ -158,12 +171,12 @@ _mongoc_openssl_import_cert_stores (SSL_CTX *context)
}
retval = _mongoc_openssl_import_cert_store (
- L"root", CERT_SYSTEM_STORE_CURRENT_USER, store);
+ L"root", CERT_SYSTEM_STORE_CURRENT_USER|CERT_STORE_READONLY_FLAG, store);
if (retval) {
return retval;
}
return _mongoc_openssl_import_cert_store (
- L"CA", CERT_SYSTEM_STORE_CURRENT_USER, store);
+ L"CA", CERT_SYSTEM_STORE_CURRENT_USER|CERT_STORE_READONLY_FLAG, store);
}
#endif
