
ç¡æã®SSLèšŒææž Let's Encryptã䜿çšããŠPythonã§HTTPSéä¿¡ããŠã¿ã
ããã«ã¡ã¯Rcatã§ãã
以äžã®èšäºã§LINEã®BOTãäœãããšæããŸãããããªããšSSLãèŠæ±ãããŠããŸããŸããã
ä»çµã¿ã確èªããã°åœããåã£ã¡ãåœããåãªãã§ãããä»ãŸã§çµ¶å¯Ÿçãªå¿
èŠæ§ããªããŠSSLã«ã¯æãåºããŠããªãã£ããã§ãããâŠã
ãšããããã§ä»åã¯å¿
èŠã«ãªã£ãã®ã§ãPythonã§SSLéä¿¡ãããŠã¿ãããšæããŸãããã®ããã®èšŒææžãååŸããŸãã
ç¡æã®SSLèšŒææžLet's Encrypt
LINEã®botãäœãéçšã§ãå
¬åŒã®ãªãã¡ã¬ã³ã¹ã®äžã§ãã¡ãã®ãµã€ãã玹ä»ãããŠããŸããã
ãã®ãµã€ãã䜿ãããšã§ãç¡æã®SSLèšŒææžãäœãããšãã§ããã¿ããã§ãã
äœ¿ãæ¹
ãµã€ãã«å ¥ããšè±èªã§è²ã æžããŠããã®ã§ããšãããããã£ããgptã«èããŠã¿ãŸããã
ãŸãšãããšãããªæãããã£ã3è¡ã§èšŒææžãã§ããã¿ããã
sudo apt-get update
sudo apt-get install certbot #ããŒã80ãéãã (ãã¡ããã«ãŒã¿ãŒã)
sudo ufw allow 80
sudo certbot certonly --standalone -d èªåã®DNS2025/10/14远èš:
çŸåšã¯ãã®3è¡ã§èšŒææžãã§ããŸãã
ãã ãã80çªã®ããŒãéæŸåã³ãã¡ã€ã¢ãŠã©ãŒã«ã®è§£é€ãå¿ããã«ãå
¥åãããã¡ã€ã³ãæ¬åœã«èªåã®ç©ãªã®ã確èªããããã«ãµãŒããŒããã¢ã¯ã»ã¹ããããŸãã
ãšã©ãŒãçºç(2025/10/14远èš:ããŸãã)
ã®ã¯ãã ã£ãã
ModuleNotFoundError: No module named 'symbol'ãªãããšã©ãŒãåºãŸããã
ããã§ãããã£ããGPTã«èããŠã¿ããšãsymbolã¯Python3.9ãŸã§ã¯ãã£ããã®ã®ã以é廿¢ãããŠãã£ãœãã
ãªãã»ã©ããã®ããŒã«ã¯Pythonã§ã§ããŠããã®ã
ç§ãLinuxã«å
¥ã£ãŠãã®ã¯3.10ã ã£ãã®ã§ãããã䜿ã£ãŠæ¬ããŒã«ã¯èµ·åããããšããŠãšã©ãŒã«ãªã£ããšèããããã
Python3.9ã®ã€ã³ã¹ããŒã«
ãšããããã§symbolã©ã€ãã©ãªãååšããã3.9ãã€ã³ã¹ããŒã«ããŸãã
ç§ã¯Ubuntuã䜿ã£ãŠããã®ã§ã以äžã®ã³ãã³ãã§ã€ã³ã¹ããŒã«ããŸããã
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.9
sudo apt install python3.9-distutilsãŸã äœãè¶³ããªãïŒ
ããŠãããã§3.9ãã€ã³ã¹ããŒã«ã§ãããã§ããããªããšããã§ããªããã©ã€ãã©ãªãè¶³ããªãã¿ããã§ãšã©ãŒã«ãªããŸãã
ãšã©ãŒãåºãŠããã©ã€ãã©ãªã¯cryptographyã§ãã
ãªããã©ã€ãã©ãªã®ã¢ã³ã€ã³ã¹ããŒã«ãªã©ãããŸãããããã¢ããã°ã¬ãŒããããŸãã§ããªãã£ãã®ã§ãä»®æ³ç°å¢ãäœã£ãŠããçŽãããšã«ããŸããã
ããããããšã§ã©ã€ãã©ãªãæ°ããã€ã³ã¹ããŒã«ãçŽããŠããŸãããšãã詊ã¿ã§ãã
sudo apt-get install python3.9-venv
python3.9 -m venv venv
source venv/bin/activate
pip install cryptography
pip install certbotãã£ãšå®è¡ãã
æºåãæŽããŸãããä»®æ³ç°å¢å
ã®certonlyããã€ã¬ã¯ãã«èµ·åããŸãã
åŒæ°ã¯ãšããããããŒãçæããããã«å¿
èŠãªã¹ã¿ã³ãã¢ããŒã³ã¢ãŒãã§ããåŸãã«ã¯èªåã®å®¶ã®DNSãå
¥ããŠãã ããã
sudo ./venv/bin/certbot certonly --standalone -d èªåã®DNSå®è¡çµæ
3床ç®ã®æ£çŽããã£ãšèµ·åããŸãããã
ïŒãŸããè£ã§ã¯ãã£ãšãããã詊è¡ããŠããã ãã©âŠïŒ
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): èªåã®ã¡ã¢ã
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for èªåã®DNS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Could not bind TCP port 80 because it is already in use by another process on
this system (such as a web server). Please stop the program in question and then
try again.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(R)etry/(C)ancel: ã¡ãã£ãšå€±æãããŒãã®80çªã空ããããã«èŠæ±ãããŸãã
Difyã䜿ã£ãŠããã®ã§äžæŠèœãšããŸãã
ããšãæ®æ®µã¯ãããŠãªãã®ã§äžç¬ã ãããŒã80ãéããŠãããŸãã
æºåãã§ãããå詊è¡
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for èªåã®DNS
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/èªåã®DNS/fullchain.pem
Key is saved at: /etc/letsencrypt/live/èªåã®DNS/privkey.pem
This certificate expires on 2024-11-26.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
ããŒã宿ããŸãããæå¹æéã¯3ã¶æã¿ããã§ããã3ã¶æããã«äœãçŽãããã§ãããããŒã80ããã£ã±ã¯å«ã ãªâŠãäœã解決çããªããåŸã§èããŸãããã
ãšããããã¯ããã§BOTã®æ¹ã«æ»ããŸãã
èªåæŽæ°ã®ç¡å¹å
æåŸã®ã¡ãã»ãŒãžã®äžæ"Certbot has set up a scheduled task to automatically renew this certificate in the background."
ããèªåæŽæ°ãæå¹ã«ããŸãããšæžããŠãããŸãã
ããŒã80ã¯éãã£æŸãã«ããªãã®ã§èªåã§ãã£ãŠããã£ãŠã倱æããã ããªã®ã§ç¡å¹åããŸãã
ãããªæãã§ã¹ã±ãžã¥ãŒã«ãããŠããããšãåããã®ã§
$systemctl list-timers | grep certbot
Fri 2024-09-06 08:33:35 JST 8h left Thu 2024-09-05 13:15:02 JST 11h ago certbot.timer certbot.serviceãããªæãã§ç¡å¹ã«ããŸã
$ sudo systemctl stop certbot.timer
$ sudo systemctl disable certbot.timeræŽæ°ã®æ¹æ³ã¯å¥éèããŸãã
確ãUPnPã䜿ãã°èªåã§ããŒãéæŸãšééãã§ããã®ã§ãã®èŸºãå©çšãã€ã€ããŠæãã«ãªãããã§ãã
æŽæ°ã¯ãã¡ãã§è¡ããŸãã
HTTPSéä¿¡ã®ããæ¹
以äžã®èšäºã®ãã¹ãã³ãŒããã確èªãã ãã
ããããDNSã£ãŠ?
ã¡ãªã¿ã«åœç¶ã®ããã«DNSãšãèšã£ãŠããŸããããç§ã¯ãã€ãããã¯DNSã䜿ã£ãŠããŸãã
DNSãšã¯ãã¹ãåãIPã¢ãã¬ã¹ã«å€æããŠããããµãŒãã¹ã®ããšã§ãã
éåžžå人ã®ã€ã³ã¿ãŒãããåç·ã¯ãªãã·ã§ã³ã«å å
¥ããŠããªãéããIPã¢ãã¬ã¹ãå€åããåçIPã§ãã
ããããç§ã®ããã«ãµãŒããŒãæã£ãŠãã人éã¯IPã¢ãã¬ã¹ã代ãããããšãå€éšããã®ã¢ã¯ã»ã¹ãã§ããªããªãéåžžã«å°ããŸãã
ããããæå©ããã®ããã€ãããã¯DNSã§ãããã®ãµãŒãã¹ã䜿ãããšã§ã奜ããªãã¹ãåãšèªåã®å®¶ã®IPã¢ãã¬ã¹ãçµã³ã€ããããšãã§ããŸãããã¡ããIPã¢ãã¬ã¹ã¯èªåã®å®¶ããæåºããªããã°ãªããªãã®ã§ãæŽæ°ããããã®èšåã¯å¿
èŠã§ããæã¯ã©ãºãã€ãã£ãŠããŸããããä»ã¯24æéã®LinuxPCã§ãã£ãŠããŸãã
èšŒææžãäœãã«ã¯ãã¹ãåãå¿ èŠã¿ãããªã®ã§ããããããã°äœ¿ã£ãŠãããµãŒãã¹ã玹ä»ããŸãã®ã§ãçãããåèã«ããŠã¿ãŠãã ããã
ã¡ãªã¿ã«ããã®ãµãŒãã¹ãå©çšããŠããçç±ã¯Arduinoã§easyddnsãšããã©ã€ãã©ãªã䜿ã£ãп޿°ã§ããããã§ããããããã°ãã©ãºãã€ã䜿ãåã¯ESP32ã§æŽæ°ããŠãŸããã
æåŸã«
å©çšèŠçŽ
æ å ±ãäœåã®æŽ»çšæã¯äºåã«å©çšèŠçŽãã確èªãã ããã
ã³ã¡ã³ãã«ã€ããŠ
å©çšèŠçŽã®ã¬ã€ãã©ã€ã³ã確èªã®äžã³ã¡ã³ãããŠãã ãã