jHipster 샘플 앱에 자체 서명된 SSL 인증서를 추가하는 방법
샘플 jHipster 앱을 만들었습니다.이제 자체 서명된 SSL 인증서를 추가하고 https에 액세스할 수 있도록 로컬로 테스트합니다.어떻게 하면 좋을까요?
이러한 순서는 JHipster의 기반이 되는 모든 Spring Boot 애플리케이션에 적용할 수 있습니다.새로 생성된 JHIPster 2.7 프로젝트에서 테스트했습니다.
처음부터 다음 단계를 완료해야 합니다.
- 자기서명증명서 생성
- Spring Boot 매뉴얼에 기재되어 있는 대로 SSL 속성을 application.properties 또는 application.yml에 추가합니다.
- (임의) HTTP를 HTTPS로 리다이렉트 합니다.
자기서명증명서
해야 합니다.이 디렉토리에서 수행할 수 .이 작업은 다음과 같이 수행할 수 있습니다.keytool
이것은 Java에서 제공하는 유틸리티 스크립트입니다.
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]:
What is the name of your organizational unit?
[Unknown]:
What is the name of your organization?
[Unknown]:
What is the name of your City or Locality?
[Unknown]:
What is the name of your State or Province?
[Unknown]:
What is the two-letter country code for this unit?
[Unknown]:
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes
했습니다.mypassword
이치노하면 " " " " 가 표시됩니다.keystore.p12
를 참조해 주세요.
을 SSL에 합니다.application.properties
★★★★★★★★★★★★★★★★★」application.yml
Spring Boot 매뉴얼에 기재되어 있는 바와 같이
「Tomcat」HTTPS.은 URL에 .src/main/resources/
요.application.yml
( (의application-dev.yml
다음 속성을 사용합니다.
server:
ssl:
key-store: keystore.p12
key-store-password: mypassword
keyStoreType: PKCS12
keyAlias: tomcat
Maven()을 사용하여 어플리케이션을 Maven(JHipster 어플리케이션으로 선택한 에는 Gradle)으로 수 .mvn clean package
mvn spring-boot: run을 사용하여 응용 프로그램을 실행합니다.이제 https://localhost:8080에서 응용 프로그램에 액세스할 수 있습니다.
위해서, 속성 하는 것이 이지만, 는 이미 에되어 있기 때문에 .application-dev.yml
★★★★★★★★★★★★★★★★★」application-prod.yml
그 요.application.yml
(임의) HTTPS 에 리다이렉트 HTTP 를 추가합니다.
로 할 수 입니다.application.properties
HTTPS를 사용합니다.도 해, 로 , 를 가 있습니다.@Configuration
와 같은
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
return tomcat;
}
private Connector initiateHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}
이 답변은 기본적으로 같은 주제에 대한 블로그 투고 카피입니다.http://www.drissamri.be/blog/java/enable-https-in-spring-boot/
Driss Amri의 훌륭한 답변을 연장하기 위해BrowserSync
.
http를 지원하지 않거나 http가 https로 리다이렉트된 경우BrowserSync
동작하지 않습니다.이 기능이 다시 작동하도록 하기 위해 필요한 변경은 거의 없습니다.
gulp/config.diag,
apiPort
그리고.uri
대상:apiPort: 8443, uri: 'https://localhost:',
gulp/module.module: 추가
options.rejectUnauthorized = false;
안으로proxyRoutes
이 노드에서 자기서명증명서에 대한 불만이 발생하지 않도록 합니다.proxyRoutes.map(function (r) { var options = url.parse(baseUri + r); options.route = r; options.preserveHost = true; options.rejectUnauthorized = false; return proxy(options); }));
임의로 빌려주다
BrowserSync
https를 통해 콘텐츠를 제공합니다.와 함께 추천합니다.Spring Social
수고를 덜기 위해서.추가만 하면 됩니다.https: true
안으로browserSync
gulp/gulp.discall:browserSync({ open: true, port: config.port, server: { baseDir: config.app, middleware: proxies }, https: true });
이제 Browser Sync는 자체 서명된 증명서와 함께 콘텐츠를 제공합니다.다음에 대해 작성된 것을 재사용할 수 있습니다.
Spring Boot
자세한 내용은 Browser Sync 홈페이지를 참조하십시오.
웹 팩을 사용하는 사용자는 Driss Amri의 답변을 다음 두 가지 변경으로 완료할 수 있습니다.
proxy.conf.json을 변경합니다.
{
"*": {
"target": "https://localhost:8443",
"secure": true
}
}
API 요구를 새로운 https 주소로 리다이렉트 합니다.다음으로 webpack 파일을 변경합니다.예를 들어 webpack.dev.js의 변경 예를 나타냅니다.
module.exports = webpackMerge(commonConfig({ env: ENV }), {
devtool: 'eval-source-map',
devServer: {
contentBase: './target/www',
proxy: [{
context: [
/* jhipster-needle-add-entity-to-webpack - JHipster will add entity api paths here */
'/api',
'/management', ...
'/auth'
],
target: 'https://127.0.0.1:8443',
/* set secure to false here, otherwise self-signed certification cause DEPTH_ZERO_SELF_SIGNED_CERT proxy errors */
secure: false
}]
},
언급URL : https://stackoverflow.com/questions/29522114/how-to-add-self-signed-ssl-certificate-to-jhipster-sample-app
'programing' 카테고리의 다른 글
유효하지 않은 문자(ORA-00911)는 어디에 있습니까? (0) | 2023.04.01 |
---|---|
Angular2 이벤트 유형 (0) | 2023.04.01 |
배열을 useEffect 종속성 목록으로 전달하는 중 (0) | 2023.04.01 |
vIM에서 JSON 들여쓰기를 수정하는 방법 (0) | 2023.04.01 |
BrowserRouter와 history.push()가 있는 라우터 (0) | 2023.04.01 |