Мне нужно получить доступ к некоторому XML из Интернета с помощью MATLAB, и для его получения мне нужно вручную загрузить сертификат безопасности с веб-сайта и использовать следующую функцию с загруженным сертификатом;
% Title: inportcert
% Author: MathWorks Support Team
% Code Version: 1.0
% Type: MATLAB soruce code https://www.mathworks.com/matlabcentral/answers/uploaded_files/1142/importcert.m
function importcert(filename)
if (nargin == 0)
% If no certificate specified show open file dialog to select
[filename,path] = uigetfile({'*.cer;*.crt','Certificates
(*.cer,*.crt)'},'Select Certificate');
if (filename==0), return, end
filename = fullfile(path,filename);
end
% Determine Java keytool location and cacerts location
keytool = fullfile(matlabroot,'sys','java','jre',computer('arch'),'jre','bin','keytool');
cacerts = fullfile(matlabroot,'sys','java','jre',computer('arch'),'jre','lib','security','cacerts');
% Create backup of cacerts
if (~exist([cacerts '.org'],'file'))
% copyfile(cacerts,[cacerts '.org'])
end
% Construct and execute keytool
command = sprintf('"%s" -import -file "%s" -keystore "%s" -storepass
changeit -noprompt',keytool,filename,cacerts);
dos(command);
, что позволит мне использовать следующую команду;
xmlread('https://finds.org.uk/database/images/index/format/xml');
Срок действия этих сертификатов истекает, и я не смог бы вручную изменить сертификаты в этот момент, поэтому мне было интересно, если;
A) Могу ли я автоматически загрузить сертификат с помощью MATLAB вместо того, чтобы делать это вручную
B) Просто полностью проигнорируйте сертификат, безопасность не проблема.
C) Желательно делать A или B без необходимости прав администратора
ПРИМЕЧАНИЕ. Похоже, что вам нужно пройти этот процесс, если вы используете систему на базе Windows, в MacOSX или Linux вам не нужно будет импортировать сертификаты, и вы можете получить доступ к странице без получения ошибки SSL Handshake.