我正在使用 SAML2 和 ADFS2 (IdP) 创建 SSO“概念验证”。 登录工作正常,但是 ADFS2 要求对我的注销请求进行签名(使用私钥),然后我想我会在依赖方信任的“签名”选项卡下添加相同的证书(.cer 文件)在 ADFS2 中。 唯一的问题是我的应用程序(服务提供商)没有证书。 我知道我可以为此目的创建一个自签名证书,但我似乎不知道如何创建一个包含我需要的一切的证书。
为了生成自签名证书,您需要 openssl 库,因此:
Debian:
apt-get install openssl
Centos/红帽:
yum install openssl
然后按照以下 3 个步骤操作:
生成私钥:
openssl genrsa -out server.pem 2048
生成CSR:(在“通用名称”中设置您的服务提供商应用程序的域)
openssl req -new -key server.pem -out server.csr
生成自签名证书
openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt
在此过程结束时,您将获得 server.csr(证书签名请求)、server.pem(私钥)和 server.crt(自签名证书)
在 Windows 中您可以使用 makecert.exe
在整理 ADFS 概念证明时,我使用了适用于 Windows 的 SelfSSL 工具。具体来说,这个家伙有针对 IIS7 的增强版本。
示例命令:
selfssl7.exe /N cn=www.example.com /K 2048 /V 3652 /X /F C:\example.pfx /W foo
生成带有 2048 位密钥的“example.pfx”文件,有效期约为 10 年,密码“foo”保护私钥,通用名称“www.example.com”。您可以将其导入到本地计算机的证书存储中,然后将其导出为 .cer 文件,根据需要包含或不包含私钥信息。
~/.redisclirc/.pine