simplesamlphp所用cert和pem文件的来源是什么,不同环境是否通用?
simplesamlphp staging环境SAML凭证配置方案
两个未知文件的身份说明
你站点同目录下存放的cert、pem文件是当前simplesamlphp作为*SAML服务提供商(SP)*的凭证对:
- cert后缀文件是SP公钥,用于给身份提供方(也就是政府AD系统)验证你方请求的签名合法性
- pem后缀文件是SP私钥,用于你方发起SAML请求、解密IDP返回的加密断言时使用
这组凭证默认是simplesamlphp部署初始化阶段生成的,对应配置写在config/authsources.php的SP配置块的privatekey、certificate字段中。
凭证是否可以和生产通用的判断规则
可直接复用生产文件的场景
满足以下两个条件就可以直接把生产环境的这两个文件复制到staging环境对应目录:
- staging环境的SP entityID配置和生产完全一致
- 政府AD团队没有要求不同环境的SP必须单独注册独立凭证
需要单独生成新凭证的场景
如果存在以下任意一种情况,需要在staging环境单独生成凭证对:
- staging环境的SP entityID和生产不一致
- AD团队要求每个环境的SP凭证独立
生成新凭证的命令如下,执行后把生成的公钥提交给AD团队更新他们侧的SP配置即可:openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out sp.crt -keyout sp.pem
配置验证步骤
把你已经拿到的IDP pem字符串插入saml20-idp-remote.php对应位置、配置好SP凭证后,访问simplesamlphp后台的「测试认证源」功能,选择你配置的SAML认证源发起测试,能正常跳转到AD登录页、登录后正常回调到staging站点即为配置成功。
内容的提问来源于stack exchange,提问作者JAyenGreen
相关产品推荐
相关产品推荐

