Ruby on Rails with Puma를 사용하여 로컬 호스트 개발 환경에 SSL을 추가하는 방법

Ruby on Rails with Puma를 사용하여 로컬 호스트 개발 환경에 SSL을 추가하는 방법

2022-10-01 last update

7 minutes reading cookies ssl rails puma
안녕하세요 독자 여러분!

음, Chrome 80의 새로운 업데이트로 타사 쿠키가 있는 경우 SameSite=None을 추가해야 합니다. 안전하지만 이는 제3자 쿠키가 HTTPS 연결을 통해서만 전송됨을 의미합니다.

다음 동영상이 저보다 더 잘 설명하고 있습니다.



또한 SameSite 쿠키 변경 사항이 있는 Chrome에서 여러분에게 blog post 남겨둡니다.

자, 여러분이 서로 쿠키를 공유하는 서비스를 개발하고 Puma와 함께 Ruby on Rails를 웹 서버로 사용하는 저와 같다면 HTTPS 연결이 필요합니다.

인증서 만들기



따라서 가장 먼저 해야 할 일은 HTTPS 연결을 추가하려는 서비스에 대한 인증서를 만드는 것입니다. mkcert를 사용하여 생성하겠습니다. 저는 localhost로 이동하지만 원하는 이름을 사용할 수 있습니다.

➜  ~ mkcert localhost
Using the local CA at "/Users/marianomatayoshi/Library/Application Support/mkcert" ✨
Warning: the local CA is not installed in the system trust store! ⚠️
Warning: the local CA is not installed in the Firefox trust store! ⚠️
Run "mkcert -install" to avoid verification errors ‼️
Created a new certificate valid for the following names 📜
- "localhost"
The certificate is at "./localhost.pem" and the key at "./localhost-key.pem" ✅

이제 이 인증서를 신뢰할 수 있는 것으로 표시해야 합니다. 저는 Mac 컴퓨터에서 작업 중이므로 Windows 또는 Linux 배포판에서 이 특정 부분을 처리하는 방법을 잘 모르겠습니다.

Mac 사용자의 경우 Keychain Access를 열고 인증서를 Keychain인 localhost.pem 파일로 드래그하면 약간의 오류가 표시될 수 있지만 결국 추가됩니다.



방금 추가한 인증서를 두 번 클릭하고 -> 신뢰를 클릭합니다.




이 인증서를 사용할 때: 항상 신뢰 옵션을 선택합니다.



SSL의 로컬 호스트



이제 흥미로운 부분:
puma 구성에서 다음과 같은 것을 원할 것입니다.




local-certs 폴더 안에 config 폴더를 만들고 거기에 인증서와 키를 붙여넣었습니다.

그런 다음 실행bundle exec puma -C puma.rb하면 다음과 같은 메시지가 표시됩니다.



➜  ~ bundle exec puma -C puma.rb
[97] Puma starting in cluster mode...
[97] * Version 4.1.0 (ruby 2.3.8-p459), codename: Fourth and One
[97] * Min threads: 5, max threads: 5
[97] * Environment: development
[97] * Process workers: 2
[97] * Phased restart available
[97] * Listening on tcp://0.0.0.0:3001
[97] * Listening on ssl://0.0.0.0:3000?cert=config/local-certs/localhost.pem&key=config/local-certs/localhost-key.pem&verify_mode=none&no_tlsv1=false&no_tlsv1_1=false
[97] Use Ctrl-C to stop
[97] - Worker 0 (pid: 105) booted, phase: 0
[97] - Worker 1 (pid: 108) booted, phase: 0


그리고 https://localhost:3000 로 가시면 이렇게 나옵니다🤘





localshot의 SSL:3000



Chrome 업데이트를 정리하는 데 도움이 되었기를 바랍니다. 여기로 ping을 보내거나 , StackOverflow 또는 Github  :)



마리아노 마타요시([email protected] )