PHP , MySQL 和 SSL 认证

标签 php security ssl

我有一个关于使用 SSL 证书构建身份验证系统的问题。我的想法是将数据存储在数据库中(我知道该怎么做),当用户提供证书时,系统会检查证书值并知道将用户放在哪里。但是有些事情不是很清楚(我可能听起来很菜,但不要评判我)

  1. 如何用PHP制作证书?
  2. 如何让系统向客户端请求特定的详细信息?(就像在 StartSSL 上一样)
  3. 我是否必须签署私有(private)证书或其他什么?

P.S:如果这有任何不同,我正在使用 HostGator 商业计划。我已要求他们颁发私有(private) ssl 证书。

最佳答案

我从未使用过 StartSSL,但是许多个人和公司现在都在使用 SSL API 和身份验证,例如新的(差不多)Facebook SDK。

注意许多浏览器和其他软件不支持将自签名证书作为有效的安全机制。

您不能在 PHP 中制作 SSL 证书,而必须使用 OpenSSL 等工具制作。这是我在 Google 上找到的简短教程:http://www.akadia.com/services/ssh_test_certificate.html .

SSL 的主要设计目的是使跨线路的数据传输更加安全,当通过 PHP 读取连接时,您将验证证书以查看它是否与预期的匹配 (http://stackoverflow. com/questions/3081042/how-to-get-ssl-certificate-info-with-curl-in-php) 很像浏览器如何下载站点 SSL 证书,然后使用它来创建安全连接。我不认为每个用户会有一个证书。

在此之后,您的所有数据都通过 HTTPS 而不是允许 SSL 身份验证的 HTTP。

根据 SSL 身份验证系统,如果它是一个 API,那么您的 cURL 请求将通过 HTTPS 而不是 HTTP 发送。

如果你正在为网站上的登录页面制作它,那么它比我上面说的要简单得多(理论上,你仍然可以搞砸很多事情)。如果您这样做,那么您只需将 SSL 证书添加到您的服务器,然后将其添加到您的服务器配置(另一个来自 Google 的 Apache 快速教程:http://www.digicert.com/ssl-certificate-installation-apache.htm),然后按照您通常将用户重定向到登录页面和登录处理页面的 https(如果您在 Apache 中,请确保您有 443vhost)。

编辑:Openssl 确实有一个 PHP API,我刚刚记得,所以我错了。

这就是我看到 SSL 身份验证失败的原因。

关于PHP , MySQL 和 SSL 认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11735842/

相关文章:

PHP: fatal error 调用成员函数......在非对象上

php - 指定具有访问控制源的多个子域

Php jquery 鼠标悬停帮助

.net - 当调用者不在域中时请求用户在 AD 中的角色

ssl - 单击一次 Https : An error occurred trying to download https://

php - 如何从命令行获取 PHP max_execution_time?

c# - 如何使用防伪 token 识别帖子数据被黑客入​​侵

angular - 通过隐藏/混淆代码来保护 Angular 6/7 应用程序

javax.net.ssl.sslhandshakeexception java.security.cert.certificateexception for soap

python - 通过 django 中的 ssl 证书进行用户身份验证