如何在Java Webhook侦听器(Spark)上使用HTTPS

时间:2019-03-29 02:49:55

标签: java apache-spark https stripe-payments

我的Java程序中已经有一段时间Webhook侦听器了,它的工作方式就像您将Webhook发送到侦听器的URL时一样。现在,我需要使URL为HTTPS,但是我不知道这是否是我需要在Java代码或Apache Web服务器中解决的问题。我有一个有效的受信任证书,但是每当我尝试通过Stripe发送一个Webhook时,它只会显示TLS错误并且不返回任何内容。我认为这是因为侦听器的端口未使用SSL,但我不知道该如何解决。如果将端口添加到Apache中的虚拟主机以使用HTTPS进行端口连接,则Java无法侦听该端口,因为该端口已在使用中。这是我的听众课。我需要添加一些代码以使其通过HTTPS进行监听吗?
侦听器(有效)的示例URL为http://verifus.ddns.net:4568/webhook。当HTTPS出现时,它根本不起作用。


import com.stripe.Stripe;
import com.stripe.model.*;
import com.stripe.net.ApiResource;
import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.entities.Role;
import org.apache.commons.httpclient.HttpStatus;
import org.simplejavamail.email.Email;
import org.simplejavamail.email.EmailBuilder;
import org.simplejavamail.mailer.MailerBuilder;
import us.verif.bot.Config;
import us.verif.bot.sql.StripeSql;

import java.security.SecureRandom;
import java.util.EventListener;
import java.util.Random;

import static spark.Spark.port;
import static spark.Spark.post;

public class StripeWebhook implements EventListener {

    static final private String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    final private Random rng = new SecureRandom();
    private JDA jda;


    public StripeWebhook(JDA jda) {
        this.jda = jda;
    }

    public void startListener() {

        port(Integer.parseInt(Config.getStripeWebhookPort()));


        post("/webhook", (request, response) -> {
            Event event = ApiResource.GSON.fromJson(request.body(), Event.class);
//Just some event checkers onwards

1 个答案:

答案 0 :(得分:0)

您需要使用SSL证书配置Apache服务器。您可以read the docs或按照某些guideshow-tos的确切步骤操作。