我需要使用MATLAB从互联网访问一些XML,为了得到它,我需要手动从网站下载安全证书,并使用以下功能和下载的证书;
% 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握手即可访问该页面错误。