如何找到 ssl 证书路径?那个由 VisualStudio 安装的,当我们使用 .NET Core 并在控制台运行“dotnet dev-certs https --trust”时更具体...
你们能帮帮我吗?
我尝试过的一切都只将我放在证书名称中。我看不到在该模式“LOCAL_MACHINE\My\'Certificate Name'上设置的路径。
我想在下面的 SQL 代码中像参数一样传递它:
EXEC @hResult = sp_OAMethod @目的, '设置选项', 无效的, 3、 'LOCAL_MACHINE\我的\'证书名称';
只是因为我正在尝试使用 SQL Server 调用 API,并且我需要使用该 SSL 证书来运行我的测试。
你们能帮帮我吗?
直到现在我收到的返回消息说它不是有效证书,但我认为这是因为我没有找到完整路径。
我不知道我是否说清楚了...只是总结...我需要通过 sql 执行此操作并且我需要知道如何使用 SSL 证书路径作为参数。
下面是我使用的代码:
begin
declare @test as int;
declare @Object as int;
declare @hResult as nvarchar(256)
declare @Response as nvarchar(256)
exec @test = sp_OACreate 'MSXML2.XMLHTTP', @Object out;
select @test, @Object;
EXEC @hResult = sp_OAMethod
@Object,
'setOption',
NULL,
3,
'LOCAL_MACHINE\My\'Certificate Name';
exec @test = sp_OAMethod @Object, 'open', null, 'get',
'https://localhost:44351/api/v1/account/3215', 'false'
select @test
exec @test = sp_OAMethod @Object, 'send'
IF @test <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
exec sp_OAMethod @Object, 'responseText', @Response OUTPUT;
end
print @Response
最佳答案
我在使用相同的 VS 生成的证书时遇到了同样的问题。我可以在开始项目时安装的 certmgr(“个人”->“证书”->localhost)中找到名为“localhost”的证书。我添加了这一行:
EXEC @hr = sp_OAMethod @Object,'setOption',NULL,3,'LOCAL_MACHINE\My\localhost';
它奏效了。
但是,我发现我可以将行更改为任何内容并且它仍然有效,即:
EXEC @hr = sp_OAMethod @Object,'setOption',NULL,3,'LOCAL_MACHINE\My\bogusfake';
所以我不能保证这对你有用,也不能解释如何/为什么,但我能够继续从存储过程发布到本地 api 的项目。我看到我的代码和您的代码之间的唯一区别是我没有用引号将证书名称引起来。
关于sql-server - 如何找到 SSL 证书完整路径并在存储过程中使用以调用 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57680409/