Maison  >  Article  >  Java  >  Comment implémenter la configuration HTTPS de SpringBoot

Comment implémenter la configuration HTTPS de SpringBoot

王林
王林avant
2023-05-27 16:29:061401parcourir

Configuration HTTPS

En raison de sa bonne sécurité, HTTPS est de plus en plus largement utilisé dans le développement. Le développement de comptes publics WeChat, de petits programmes, etc. doit être réalisé en utilisant HTTPS. Pour les développeurs individuels, le prix d'un certificat HTTPS est encore un peu élevé. Certains fabricants de serveurs cloud nationaux proposent des certificats HTTPS gratuits, et un compte peut en demander plusieurs. Cependant, keytool, un outil de gestion de certificats numériques Java, est fourni dans jdk. Dans le répertoire jdkbin, vous pouvez utiliser cet outil pour générer vous-même un certificat numérique. La commande de génération est la suivante :

keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365
  • genkey signifie créer un certificat numérique. nouvelle clé.

  • alias représente l'alias du magasin de clés.

  • keyalg indique que l'algorithme de chiffrement utilisé est RSA, un algorithme de chiffrement asymétrique.

  • keysize représente la longueur de la clé.

  • keystore indique l'emplacement de stockage de la clé générée.

  • validité indique la durée de validité de la clé, en jours.

Selon les invites, vous devez fournir un mot de passe ou un mot de passe et d'autres informations lors de l'exécution de la commande dans la fenêtre cmd. Saisissez-le pour terminer le processus d'exécution. Une fois la commande exécutée, un fichier nommé sang.p12 sera généré dans le répertoire utilisateur actuel. Copiez ce fichier dans le répertoire racine du projet, puis effectuez la configuration suivante dans application.properties :

# key-store表示密钥文件名。
server.ssl.key-store=sang.p12 
# key-alias表示密钥别名。
server.ssl.key-alias=tomcathttps
#key-store-password 就是在cmd命令执行过程中输入的密码。
server.ssl.key-store-password=123456

Après une configuration réussie, démarrez le projet, entrez "https:/localhost:8080" dans votre navigateur pour afficher les résultats. Notez que le certificat généré n'est pas authentifié par le navigateur, vous devrez donc ajouter de la confiance ou avancer. Veuillez vous référer à l'image ci-dessous.

Comment implémenter la configuration HTTPS de SpringBoot

Le résultat d'une opération réussie est comme indiqué sur la figure

Comment implémenter la configuration HTTPS de SpringBoot

À ce moment, si vous accédez à l'interface via HTTP, l'accès échouera, comme le montre la figure

Comment implémenter la configuration HTTPS de SpringBoot

Réécriture originale : Spring Boot ne prend pas en charge la configuration Activer HTTP et HTTPS Moyenne. À ce stade, vous pouvez configurer la redirection des requêtes pour rediriger les requêtes HTTP vers les requêtes HTTPS. La méthode de configuration est la suivante

@Configuration
public class TomcatConfig {
    @Bean
    TomcatServletWebServerFactory tomcatServletWebServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
            }
        };
        factory.addAdditionalTomcatConnectors(createTomcatConnector());
        return factory;
    }

    private Connector createTomcatConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8080);
        connector.setSecure(false);
        connector.setRedirectPort(8081);
        return connector;
    }
}

Ici, configurez d'abord un TomcatServletWebServerFactory, puis ajoutez un connecteur dans Tomcat (écoutez le port 8080) et transférez la demande au 8081.
Une fois la configuration terminée, entrez « http://localhost:8080/ » dans le navigateur et il sera automatiquement redirigé vers https://localhost:8081/.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer