Coldfusion Recaptcha错误:I/O异常:证书中的名称与主机名不匹配

Coldfusion Recaptcha错误:I/O异常:证书中的名称与主机名不匹配,coldfusion,recaptcha,coldfusion-9,Coldfusion,Recaptcha,Coldfusion 9,所以我试图让ReCaptcha在ColdFusion上工作(下面是完整的源代码)。我尝试使用get/post,但得到了相同的错误 I/O Exception: Name in certificate `google.com' does not match host name `www.google.com' 我将代码转换为PHP(下面是完整的源代码),效果很好。唯一的区别是PHP代码只使用get方法 知道我做错了什么吗?谢谢你的帮助 Coldfusion代码: <cfif Struct

所以我试图让ReCaptcha在ColdFusion上工作(下面是完整的源代码)。我尝试使用get/post,但得到了相同的错误

I/O Exception: Name in certificate `google.com' does not match host name `www.google.com'

我将代码转换为PHP(下面是完整的源代码),效果很好。唯一的区别是PHP代码只使用get方法

知道我做错了什么吗?谢谢你的帮助

Coldfusion代码:

<cfif StructKeyExists(Form, "submit")>
    <cfset googleurl = "https://www.google.com/recaptcha/api/siteverify" />
    <cfset recaptchasecret = "secret-key-here" />
    <cfset recaptcha = FORM["g-recaptcha-response"] >
    <cfset remoteip = CGI["remote_addr"] />

    <!---post method--->
    <!---<cfhttp url="#googleurl#" method="post" resolveURL="yes">
        <cfhttpparam type="formfield" name="secret" value="#recaptchasecret#" />
        <cfhttpparam type="formfield" name="response" value="#recaptcha]#" />
        <cfhttpparam type="formfield" name="remoteip" value="#remoteip#" />
    </cfhttp>--->

    <!---get method--->
    <cfhttp url="#googleurl#?secret=#recaptchasecret#&response=#recaptcha#&remoteip=#remoteip#" method=get/>

    <cfdump var="#cfhttp#"><hr>
    <cfabort>
</cfif>

<html>
    <head>
        <title>Google recapcha demo - Codeforgeek</title>
        <script src='https://www.google.com/recaptcha/api.js'></script>
    </head>
    <body>
        <h1>Google reCAPTHA Demo</h1>
        <form id="comment_form" action="test.cfm" method="post">
            <input type="email" placeholder="Type your email" size="40"><br><br>
            <textarea name="comment" rows="8" cols="39"></textarea><br><br>
            <input type="submit" name="submit" value="Post comment"><br><br>
            <div class="g-recaptcha" data-sitekey="site-key-here"></div>
        </form>
    </body>
</html>
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        var_dump($_POST);

        $googleurl = "https://www.google.com/recaptcha/api/siteverify";
        $secretKey = "secret-key-here";
        $captcha=$_POST['g-recaptcha-response'];
        $ip = $_SERVER['REMOTE_ADDR'];

        $response=file_get_contents($googleurl."?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);

        $responseKeys = json_decode($response,true);

        var_dump($responseKeys);
    }
?>

<html>
    <head>
        <title>Google recapcha demo - Codeforgeek</title>
        <script src='https://www.google.com/recaptcha/api.js'></script>
    </head>
    <body>
        <h1>Google reCAPTHA Demo</h1>
        <form id="comment_form" action="test.php" method="post">
            <input type="email" placeholder="Type your email" size="40"><br><br>
            <textarea name="comment" rows="8" cols="39"></textarea><br><br>
            <input type="submit" name="submit" value="Post comment"><br><br>
            <div class="g-recaptcha" data-sitekey="site-key-here"></div>
        </form>
    </body>
</html>


谷歌recapcha演示-CodeForgek 谷歌重演演示





PHP代码:

<cfif StructKeyExists(Form, "submit")>
    <cfset googleurl = "https://www.google.com/recaptcha/api/siteverify" />
    <cfset recaptchasecret = "secret-key-here" />
    <cfset recaptcha = FORM["g-recaptcha-response"] >
    <cfset remoteip = CGI["remote_addr"] />

    <!---post method--->
    <!---<cfhttp url="#googleurl#" method="post" resolveURL="yes">
        <cfhttpparam type="formfield" name="secret" value="#recaptchasecret#" />
        <cfhttpparam type="formfield" name="response" value="#recaptcha]#" />
        <cfhttpparam type="formfield" name="remoteip" value="#remoteip#" />
    </cfhttp>--->

    <!---get method--->
    <cfhttp url="#googleurl#?secret=#recaptchasecret#&response=#recaptcha#&remoteip=#remoteip#" method=get/>

    <cfdump var="#cfhttp#"><hr>
    <cfabort>
</cfif>

<html>
    <head>
        <title>Google recapcha demo - Codeforgeek</title>
        <script src='https://www.google.com/recaptcha/api.js'></script>
    </head>
    <body>
        <h1>Google reCAPTHA Demo</h1>
        <form id="comment_form" action="test.cfm" method="post">
            <input type="email" placeholder="Type your email" size="40"><br><br>
            <textarea name="comment" rows="8" cols="39"></textarea><br><br>
            <input type="submit" name="submit" value="Post comment"><br><br>
            <div class="g-recaptcha" data-sitekey="site-key-here"></div>
        </form>
    </body>
</html>
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        var_dump($_POST);

        $googleurl = "https://www.google.com/recaptcha/api/siteverify";
        $secretKey = "secret-key-here";
        $captcha=$_POST['g-recaptcha-response'];
        $ip = $_SERVER['REMOTE_ADDR'];

        $response=file_get_contents($googleurl."?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);

        $responseKeys = json_decode($response,true);

        var_dump($responseKeys);
    }
?>

<html>
    <head>
        <title>Google recapcha demo - Codeforgeek</title>
        <script src='https://www.google.com/recaptcha/api.js'></script>
    </head>
    <body>
        <h1>Google reCAPTHA Demo</h1>
        <form id="comment_form" action="test.php" method="post">
            <input type="email" placeholder="Type your email" size="40"><br><br>
            <textarea name="comment" rows="8" cols="39"></textarea><br><br>
            <input type="submit" name="submit" value="Post comment"><br><br>
            <div class="g-recaptcha" data-sitekey="site-key-here"></div>
        </form>
    </body>
</html>

谷歌recapcha演示-CodeForgek
谷歌重演演示







这是一个SSL问题-java无法正确连接到“www.google.com”。作为临时解决方法,请使用
。但一定要更新java的证书存储。

这是一个SSL问题-java无法正确连接到“www.google.com”。作为临时解决方法,请使用
。但一定要更新java的证书存储。

您一定要使用ssl url和POST。既然你正在公开你的秘密密钥,你肯定应该使用ssl url和POST。实际上,您正在公开您的密钥。