Collage

n. A piece of art made by sticking various different materials, aka PHENOMENA Magazine
Department
package com.phenomena.xxx.test.mail; import jakarta.mail.*; import jakarta.mail.internet.*; import java.util.*; public class MailSendTest { private static final String SMTP_HOST_NAME = "smtp.test.com"; //or simply "localhost" private static final String SMTP_AUTH_USER = "test"; // id private static final String SMTP_AUTH_PWD = "1234"; // pw private static final String emailMsgTxt = "Hell World"; private static final String emailSubjectTxt = "Title"; private static final String emailFromAddress = "test@phenomena.com"; // Add List of Email address to who email needs to be sent to private static final String[] emailList = {"contact@me.com"}; public static void main(String args[]) throws AuthenticationFailedException, MessagingException { MailSendTest smtpMailSender = new MailSendTest(); smtpMailSender.postMail( emailList, emailSubjectTxt, emailMsgTxt, emailFromAddress); System.out.println("Sucessfully Sent mail to All Users"); } public void postMail( String recipients[], String subject, String message , String from) throws MessagingException, AuthenticationFailedException { boolean debug = false; // Set the host smtp address Properties props = new Properties(); props.put("mail.smtp.host", SMTP_HOST_NAME); props.put("mail.smtp.port", "666"); //TLS Port props.put("mail.smtp.auth", "true"); //enable authentication props.put("mail.smtp.starttls.enable", "true"); //enable STARTTLS props.put("mail.debug", "true"); props.put("mail.smtp.ssl.enable", "true"); //Important Authenticator auth = new SMTPAuthenticator(); Session session = Session.getDefaultInstance(props, auth); session.setDebug(debug); // create a message Message msg = new MimeMessage(session); // set the from and to address InternetAddress addressFrom = new InternetAddress(from); msg.setFrom(addressFrom); InternetAddress[] addressTo = new InternetAddress[recipients.length]; for (int i = 0; i < recipients.length; i++) { addressTo[i] = new InternetAddress(recipients[i]); } msg.setRecipients(Message.RecipientType.TO, addressTo); // Setting the Subject and Content Type msg.setSubject(subject); msg.setContent(message, "text/plain"); Transport.send(msg); } private class SMTPAuthenticator extends jakarta.mail.Authenticator { public PasswordAuthentication getPasswordAuthentication() { String username = SMTP_AUTH_USER; String password = SMTP_AUTH_PWD; return new PasswordAuthentication(username, password); } } }   Ref. Got bad greeting from SMTP host: smtp.yandex.ru, port: 465, response: [EOF]] with root cause Yandex I use brand new spring boot project with next Maven dependency <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star... https://stackoverflow.com/questions/63236701/got-bad-greeting-from-smtp-host-smtp-yandex-ru-port-465-response-eof-wit  
John Doe · Aug. 22, 2024, 5:27 p.m.
Jakarta mail
Q The :) event at 11pm is correctly appearing on the correct date (8/1), but the :( event that starts 1 minute later appears to span across two days (8/1 - 8/2). See screenshot below.   A If you don't specify the end time, the default duration is 1 hour which makes it run into the next day: defaultTimedEventDuration - Docs | FullCalendar FullCalendar Demos Docs Support Getting Help Reporting Bugs Requesting Features Contributing Pricing Jul 12 — v6.1.15 Event Model Event Parsing Event Object Recurring Events RRule Plugin Event Data Parsing eventDataTransform defaultAllDay defaultAllDayEve https://fullcalendar.io/docs/defaultTimedEventDuration   ***** If the start time and the end time are the same, then the issue will also arise. Solutions: let calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridMonth', //timeZone: 'Asia/Seoul', eventTimeFormat: { hour: '2-digit', minute: '2-digit', hourCycle: 'h24' }, defaultTimedEventDuration: '00:00', events: [ { id: 'a', title: 'my event', "start": "2024-07-09T23:02:21", "end": "2024-07-09T23:02:21", //"start": "2024-07-09T23:02:20+0900", //"end": "2024-07-09T23:02:21+0900", } ] });   OR   let calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridMonth', //timeZone: 'Asia/Seoul', eventTimeFormat: { hour: '2-digit', minute: '2-digit', hourCycle: 'h24' }, //defaultTimedEventDuration: '00:00', events: [ { id: 'a', title: 'my event', //"start": "2024-07-09T23:02:21", //"end": "2024-07-09T23:02:21", "start": "2024-07-09T23:02:20+0900", "end": "2024-07-09T23:02:21+0900", } ] });   Ref. Events after 11pm appear to span two days · Issue #5008 · fullcalendar/fullcalendar See: https://jsfiddle.net/412qh7zx/5/ The :) event at 11pm is correctly appearing on the correct date (8/1), but the :( event that starts 1 minute later appears to span across two days (8/1 - 8/2).... https://github.com/fullcalendar/fullcalendar/issues/5008  
John Doe · July 30, 2024, 8:36 p.m.
fullcalendar
Error File "/home/kuba/.virtualenvs/VeeU/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in apply_converters 779. value = converter(value, expression, self.connection, self.query.context) File "/home/kuba/.virtualenvs/VeeU/lib/python3.5/site-packages/django/db/models/functions/datetime.py" in convert_value 181. "Database returned an invalid datetime value. " ValueError: Database returned an invalid datetime value. Are time zone definitions for your database installed?   Solution 1. Linux contact@me:~$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql contact@me:~$ mysql -u root -p -e "flush tables;" mysql 2. Windows 1) Download posix timezone sql from https://dev.mysql.com/downloads/timezones.html 2) Do not move anything, just open this sql file in MySQL Workbench and add USE mysql; to the first line. 3) Run this file and that's it   * How to run SQL script in MySQL? 1. If you’re at the MySQL command line mysql> you have to declare the SQL file as source. mysql> source \home\user\Desktop\test.sql; 2. CMD   Ref. Django Mysql Database returned an invalid datetime value I have a Django app. I am using MySql server running in docker container as a database. After just moved to a custom User model. Now i am getting those errors: Environment: Request Method: GET Req... https://stackoverflow.com/questions/40792628/django-mysql-database-returned-an-invalid-datetime-value Database returned an invalid datetime value. Are time zone definitions for your database installed? i tried to TruncDay in django to turn date into day format , i use mysql version 8.0 with windows 10 this my settings.py TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True date = m... https://stackoverflow.com/questions/62581502/database-returned-an-invalid-datetime-value-are-time-zone-definitions-for-your [DB] MySQL SQL파일 실행 및 백업 ■ SQL파일 실행 1. 프롬프트(cmd) 환경 예시) mysql -u(유저명) -p < sql파일명.sql mysql -uroot -p < testFile.sql 1) testFile.sql 내용 확인 2) 프롬프트(cmd)에서 실행 2. MySQL 접속 환경 예시) source sql파일명.sql source C:\MySQL\testFile.sql ■ SQL파일로 DataBase 백업 ※ 프롬프트(cmd) 환경 예시) mysqldump -u(유저명) https://hyunmin1906.tistory.com/103   * MariaDB에서 root 암호 인증 방식이 먹히지 않는 이유(feat. unix_socket) [B급 프로그래머] MariaDB에서 root 암호 인증 방식이 먹히지 않는 이유(feat. unix_socket) "컴퓨터와 책에 대한 블로그입니다." https://jhrogue.blogspot.com/2020/02/b-mariadb-root-feat-unixsocket.html MariaDB; 인증(Authentication) 문제. – 바깥 세상으로.. (As a kite by then) Skip to content 바깥 세상으로.. (As a kite by then) Search for: × Menu 첫머리 이곳은? 以前 記錄 記憶 (egloos) 주저리주저리 Prince & New Power Generation – Diamonds & Pearls 갑자기, Prince. Tears for Fears: The Tipping Point Pat Metheny: Road to the Sun 김태은/오경희/정민아 : 산조的 감각 Pat Meth https://www.nemonein.xyz/2019/07/2254/  
John Doe · June 10, 2024, 7:22 p.m.
django SQL
Neither of above helped in my case - IP connection to http works as expected but https was redirecting to alphabetically first https virtual site. What was working witn nginx below 1.19.4 was to add null certificate to block: server { listen 80 default_server; listen [::]:80 default_server; listen 443 default_server; listen [::]:443 default_server; ssl_certificate /etc/ssl/null.crt; ssl_certificate_key /etc/ssl/null.key; server_name ""; return 444; }   Certificte can be generated with empty CN so you need no worry about fill it. sudo openssl req -x509 -newkey rsa:2048 -days 10000 -nodes -subj "/C=US/ST=Florida/L=XXXXX/O=Foo Inc./OU=IT/CN=X" -keyout null.key -out null.crt   Then http/https returns 444 (ERR_EMPTY_RESPONSE), in different configurations https returns ERR_HTTP2_PROTOCOL_ERROR with your null certificate which is also fine to show there is nothing there. For nginx 1.19.4 it is simpler. It introduced ssl_reject_handshake on | off (http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_reject_handshake) you can replace certificates 'stuff' with: server { listen 80 default_server; listen [::]:80 default_server; listen 443 default_server; listen [::]:443 default_server; ssl_reject_handshake on; server_name ""; return 444; }   And now you get http 444 (ERR_EMPTY_RESPONSE) and for https ERR_SSL_UNRECOGNIZED_NAME_ALERT. No null certificates are needed.   Ref. how to disable direct access to a web site by ip address I have a website on a VPS. The issue I am having is that when I enter the IP of the server, it links to the website. Even when entering mail.domain.com, it does the same thing. How do I disable t... https://stackoverflow.com/questions/29104943/how-to-disable-direct-access-to-a-web-site-by-ip-address OpenSSL: A problem with Field Name abbreviations? I am trying to create a new private key and CSR file for a colleague with some provided details: C = US S = Florida L = XXXXX O ... https://stackoverflow.com/questions/55541601/openssl-a-problem-with-field-name-abbreviations
John Doe · Nov. 28, 2023, 9:14 p.m.
nginx ssl
자동차 관리 방법에 대한 낡았거나 잘못된 정보들이 차고 넘친다. 이를 너무 굳게 믿다보니 자신과 다른 정보는 좀체 받아들이지 못하기도 한다.  많은 독자들이 이 글과 다른 생각을 갖고 있을테지만, 각 제조사 관계자와 자동차 취급설명서에는 이렇게 적혀 있다고 알려야겠다. 아, 벌써부터 정비업계 관계자들이 남길 악플들이 눈에 선하다. 뭐라고 말하든 상관없다. 선량한 소비자들이 자신의 권리를 주장할 수 있게 되길 바라기 때문이다. 인터넷에 떠도는 근거없는 설에 귀기울이지 말고, 제조사가 만든 설명서를 보자.   엔진 오일의 교환주기는 적어도 1만5000킬로미터다. 신차도 마찬가지다. 카센터에서는 흔히 엔진오일 교환주기를 5000km라고 얘기하는 경우가 있다. 신차는 더 빨리 갈아줘야 한다는 말도 나온다. 하지만 현대자동차가 자동차를 살때 넣어주는 '제품설명서'에 따르면 신차건 아니건 관계 없이 엔진오일은 1만5000km, 혹은 1년마다 갈면 된다. 1년에 1만5000km를 못타는 운전자라면 차를 구입한 날을 기념일 삼아 매년 한번씩 갈아주면 되겠다.  설명서에 따르면 혹독한 가혹조건에서도 교환주기는 7500km로 적혀 있다. 여기서 가혹조건은 경찰차, 택시, 상용차, 견인차 같은 특별한 차들의 주행조건에 준하는 경우를 말한다. 서울을 달리는 차라도 주말에도 이용하고 지방에도 가는 보통 조건이라면 일반 조건으로 교환하면 된다.   ▲ 합성엔진오일의 교환주기를 늘려잡는 카센터도 있지만, 제조사는 이를 권장하지 않는다. 합성유는 수명보다는 특성이 좋을 뿐이다.   흔히 에어클리너도 한세트로 갈지만 사실 에어클리너는 4만킬로마다 갈면 된다. 엔진오일을 두번 갈고도 남는 거리다. 다만 에어클리너는 1만킬로마다 점검을 하도록 만들어진만큼 안쪽(엔진방향)에서 바깥쪽으로 고압으로 불어내는 방식으로 청소하면 된다. 카센터에 따라선 "제조사의 메뉴얼을 믿을 수 없다"는 경우도 있는데, 제조사는 엔진이 고장났을때 보증 수리를 해주는 입장인만큼 굉장히 보수적인 입장에서 메뉴얼을 만든다. 제발 이런건 좀 믿자.   브레이크액은 2년, 4만킬로마다 갈아야...엔진오일 두번갈때 마다 엔진 오일 교환이 자동차의 엔진건강을 위한거라면 브레이크액은 운전자와 승객의 육체 건강을 보전하기 위해 필수다. 제때 갈지 않으면 브레이크가 먹통이 돼 대형 사고가 나기 때문이다. 브레이크액 교환은 시간도 많이 들고 특별한 장비도 있어야 해서 작업자는 번거롭다. 바퀴마다 장비를 끼워 액을 빼줘야 하는데다 경우에 따라 공기빼기 작업까지 해줘야 하고, ABS 모듈레이터에서도 작업을 해야한다. 그럼에도 불구하고 이상하게 교환 비용이 싸게 책정돼 있어 카센터가 꺼리는 작업 중 하나다.  현대자동차 고객서비스센터 김정열 과장은 "많은 소비자들이 엔진오일은 자주 갈면서 안전에 직결되는 브레이크액은 거의 폐차 할때까지 교체를 안하는 경우도 많다"며 안타까워했다. 김과장은 "브레이크액은 밀봉돼 있지 않아 수분을 자꾸 흡수하기 때문에 오래 갈지 않으면 브레이크를 밟았을때 베이퍼록(브레이크액 내의 수분이 끓어올라 브레이크가 작동되지 않는 현상)이 발생할 수 있고 안전 사고의 원인이 된다"고 설명했다. 다시 말해 6년 탄차라면 적어도 3번은 갈았어야 한다는 말이다. 그렇게  갈지 않았다면? 지금이라도 당장 갈자. 갈고 나면 제동 느낌부터 확 달라진다.   냉각수(부동액), 에어컨 개스는 교체하는게 아니다 일부 카센터는 냉각수를 겨울마다 교체하고, 여름마다 에어컨 개스를 교체하기도 한다. 그런데 그럴 필요는 전혀 없다.  냉각수는 간혹 증발로 인해 부족해지면 보충하는데, 이때 만약 부동액 용액이 아닌 맹물을 넣었다면 냉각수가 희석된다. 이 때는 물을 빼고 부동액을 보충하면 된다. 맹물을 넣은 적이 없다면 아예 교체하지 않아야 한다. 냉각수 교체는 무려 10년, 20만킬로까지 안해도 된다. 다만 일단 교체를 하고 나면 이후부터는 2년 4만킬로마다 교체해야 한다. 믿어지지 않는다고? 자기 자동차 취급설명서 좀 읽자. 에어컨은 공기중 수분을 없애주는 효과가 있으므로 겨울에도 유리창 김서림을 막기 위해 작동하는게 좋다. 하지만 겨울 내내 단 한차례도 사용하지 않았다면 에어컨 가스가 조금씩 유출되는 경우가 있다. 가정용 에어컨은 가스통 속에 모터가 있어 완전 기밀이 유지되지만 자동차용 에어컨은 외부 엔진으로부터 동력을 받아야 하므로 가스가 새나올만한 틈이 있어서다. 에어컨 개스가 1년마다 점검, 부족하면 보충, 교체는 할 필요가 없다.   자동차 메뉴얼을 자주 읽고 전적으로 신뢰하자. 차를 만든 사람들의 설명을 안믿으면 누구를 믿겠나.   변속기오일(미션오일), 점화플러그, 디퍼런셜 오일...교환주기 생각보다 길다 틈만 나면 변속기 오일, 디퍼런셜 오일을 교체하자는 경우도 있다. 그런데 사실 이들은 교체할 필요가 없거나 교체주기가 엄청나게 길다. 최근 자동차들은 변속기 오일을 점검하는 스틱조차 없애버렸다. 변속기 오일이 무교환, 무점검식으로 만들어져 밀봉 돼서다. 만약 가혹조건에서 주행한다고 해도 10만킬로마다 갈면 된다. 점화플러그는 교환주기가 무려 16만km다. 점화플러그의 형태나 소재는 큰 관계 없다. 그냥 순정 플러그를 쓰면 된다. 4륜구동차나 후륜구동차에 사용되는 디퍼런셜 오일은 6만km마다 점검을 하면 된다. 만일 산길이나 시속 170km 이상으로 빈번하게 달리는 경우는 12만km에 교환한다.     새 타이어는 항상 뒤에 끼워야 한다 스포츠카를 제외하면 전륜구동이든 후륜구동이든 대부분 자동차 타이어는 앞쪽부터 닳는다. 특히 전륜구동 차는 앞부분 타이어가 뒤쪽에 비해 너무나 빨리 닳기 때문에 두짝만 갈아 끼우게 된다. 이때 굳이 말하지 않으면 카센터는 항상 앞쪽에 새 타이어를 끼운다. 그러나 이건 위험천만한 일이다.   세계 최대 타이어 회사인 미쉐린타이어는 다양한 방법으로 여러 낡은 타이어를 테스트 한 결과 헌 타이어를 반드시 앞에 끼우라고 당부했다. 슬립이 일어나기 쉬운 헌 타이어를 뒤에 끼우는 경우 빗길이나 눈길에서 뒤쪽이 미끄러져 오버스티어가 발생하기 쉬운데, 오버스티어는 언더스티어에 비해 회복하기 어렵기 때문이다.      물론 언더스티어가 위험하지 않다는 것은 아니다. 미쉐린 타이어 공식자료는 "모든 차는 대부분 코너에서 언더스티어가 조금씩 발생하는데 운전자들이 은연중에 이를 극복하면서 운전한다"면서 언더스티어가 오버스티어에 비해 훨씬 극복하기 쉬운 이유를 설명했다. 또 "더구나 언더스티어는 눈치채기도 쉬워서 코너에서 속도를 줄이게끔 유도하기도 한다"고 덧붙였다. 작업자는 당연히 닳아버린 앞쪽만 바꾸는게 쉽고 재 작업을 할 필요도 적지만 뒤쪽 타이어를 휠밸런스 점검 후 앞으로 보내고 뒤에 새로운 타이어를 끼우는게 옳다. 앞쪽이 금세 닳게 되면 또 뒤쪽 타이어를 앞으로 보내야 한다.    점검은 대부분 공짜다. 틈날때마다 하자. 가끔 '무상점검 기간'이라고 생색내는 브랜드들이 있는데, 대부분 브랜드는 언제나 점검을 공짜로 해준다. 현대자동차 고객서비스팀 김정열 과장은 "자기보다 자기 차를 사랑하는 사람이 있겠냐"면서 "관심을 더가질수록 좋고, 차에 이상한 소리가 나거나 느낌이 들때면 언제고 센터에 자주 가서 점검 받는게 바람직하다"고 설명했다.   Ref. 카센터가 절대 말해주지 않는 '자동차 관리 상식' 5가지 자동차 관리 방법에 대한 낡았거나 잘못된 정보들이 차고 넘친다. 이를 너무 굳게 믿다보니 자신과 다른 정보는 좀체 받아들이지 못하기도 한다. 많은 독자들이 이 글과 다른 생각을 갖고 있을테지만, 각 제조사 관계자와 자동차 취급설명서에는 이렇게 적혀 있다고 알려야겠다. 아, 벌써부터 정비업계 관계자들이 남길 악플들이 눈에 선하다. 뭐라고 말하든 상관없다. 선량한 소비자들이 자신의 권리를 주장할 수 있게 되길 바라기 때문이다. 인터넷에 떠도는 근거없는 설에 https://www.motorgraph.com/news/articleView.html?idxno=4262  
John Doe · Nov. 6, 2023, 7:30 a.m.
조국 전 법무부 장관과 딸 조민 [사진 = 연합뉴스]   조국 전 법무부 장관이 딸 조민의 호텔 인턴 허위 경력서를 직접 작성한 정황이 드러났다. 31일 검찰에 따르면 호텔 인턴 경력서가 조국 전 장관의 서울대 교수실 컴퓨터에서 작성된 것으로 파악됐다. 이는 이 경력서에 적힌 호텔 이름 중 한 글자가 틀린 사실이 확인되며 들통났다. 실제 호텔 공식 명칭은 ‘아쿠아펠리스’지만, 수료증에 적힌 호텔 이름은 ‘아쿠아팰리스’였다. 외래표기법상 조 전 장관이 사용한 ‘팰’이 바른 표기지만, 호텔 측은 이를 따르지 않고 ‘펠’을 사용하고 있다. 검찰은 조 전 장관이 허위 서류를 만들고 호텔 관계자를 통해 법인 인감을 날인 받아 직접 작성했다고 판단했다.   저게 왜 들켰나 하면, 쉽게 말해 '홍길동'이라는 사람이, 본인 이름을 '홍길똥'이라고 잘못 쓴 것. 세상에 본인 이름 잘못 쓰는 바보는 없는 것처럼, 호텔이 서류를 발급할 때, 그 명칭을 잘못 쓸 리 없다는 것. 즉 잔꾀부려 사기치다 딱 걸리곤, 법정에서 묵비권을 행사한 것. 밖에서는 정의의 사도인 양 떠들다가, 법정에선 묵념한 것.. 이제 밖에서도 입 다물고 죗값이나 치르기를.. 사내자식이 뭔말이 그렇게 많냐. 남의 자식들은 가붕게로 살라고 하면서 지 자식들은 조작까지 해서라도 용 만들어보겠다는 위선자. 이런 야비한 자가 서울대교수였냐 국민세금이 아깝고 배운 제자들이 불쌍하고 촛불든 자들이 멍청한거지.   ‘펠’ ‘팰’ 한 글자로 들통났다…조국이 직접 쓴 딸 조민 ‘허위 인턴 경력서’ 조국 전 법무부 장관이 딸 조민씨의 호텔 인턴 허위 경력서를 직접 작성한 정황이 드러났다. 31일 검찰에 따르면 호텔 인턴 경력서가 조국 전 장관의 서울대 교수실 컴퓨터에서 작성된 것으로 파악됐다. 이는 이 경력서에 https://n.news.naver.com/article/009/0005180349  
John Doe · Aug. 31, 2023, 8:44 p.m.
조국 조민 조작 가짜 허위
SSL certificate_verify_failed errors typically occur as a result of outdated Python default certificates or invalid root certificates. When client receives the server’s certificate, it begins chaining that certificate back to its root. It will begin by following the chain to the intermediate that has been installed, from there it continues tracing backwards until it arrives at a trusted root certificate. If the certificate is valid and can be chained back to a trusted root, it will be trusted. If it can’t be chained back to a trusted root, the browser will issue a warning about the certificate.   Common issues :  CERTIFICATE_VERIFY_FAILED [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate. HTTPSConnectionPool(host='oriel.com' , port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)')))   How to fix it :  We will have several ways to fix this issue in this article.  We will skip the SS certificate check in the first three solutions.  For the fourth solution, we are going to install the latest CA certificate from certifi. Common Quick Fixes for All OS : import ssl import certifi from urllib.request import urlopen request = "https://nd-123-456-789.p2pify.com/901c7d18b72538fd3324248e1234" urlopen(request, context=ssl.create_default_context(cafile=certifi.where()))   Or we can try it in several ways as per in below articles 1. Create unverified context in SSL import ssl context = ssl._create_unverified_context() urllib.request.urlopen(req,context=context)   2. Create unverified https context in SSL import ssl ssl._create_default_https_context = ssl._create_unverified_context urllib2.urlopen(“https://google.com”).read()   3. Use requests module and set ssl verify to false requests.get(url, headers=Hostreferer,verify=False) * It's not recommended to use verify=False in your organization's environments. This is essentially disabling SSL verification. Sometimes, when you are behind a company proxy, it replaces the certificate chain with the ones of Proxy. Adding the certificates in cacert.pem used by certifi should solve the issue. I had similar issue. Here is what I did, to resolve the issue - Find the path where cacert.pem is located - Install certifi, if you don't have. Command: pip install certifi import certifi certifi.where() C:\\Users\\[UserID]\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\certifi\\cacert.pem Open the URL on a browser. Download the chain of certificates from the URL and save as Base64 encoded .cer files. Now open the cacert.pem in a notepad and just add every downloaded certificate contents (---Begin Certificate--- *** ---End Certificate---) at the end.   4. Update SSL certificate with PIP It is likely that the SSL certificate issued by the server is not trusted on your client. To fix this, you can either use a trusted certificate from a recognized certificate authority on the API end, or add the certificate authority from your API to your client. if the error stay, try these commands to update your SSL certificate libs With PIP. All we would have to do is to update our SSL certificate directory with the following piece of code: if older version of python3 pip install –upgrade certifi if newer version of python3 python -m pip install --upgrade certifi What this command does is update our system’s SSL certificate directory. This will ensure that your client has the latest version of the library, which includes a set of trusted root certificates that may be needed to verify SSL certificates.   5. Update SSL certificate with certifi (MacOS only) All we would have to do is to run command with the following piece of code: - Press "command + space" button or open Spotlight - type "Install Certificates.command" What this command does is update our system’s SSL certificate directory for MacOS.   https://support.chainstack.com/hc/en-us/articles/9117198436249-Common-SSL-Issues-on-Python-and-How-to-Fix-it Unable to get local issuer certificate when using requests here is my code import requests; url='that website'; headers={ 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Accept-Language':'zh-CN,zh;q=0.... https://stackoverflow.com/questions/51925384/unable-to-get-local-issuer-certificate-when-using-requests HTTPSConnectionPool: Max retries exceeded with URL (Caused by SSLError) I am trying to make an HTTPS request to a URL using Python requests library and certifi library as follows: import certifi url = 'https://10.0.0.39:4455/api/cars' response = requests.get(url, verify= https://stackoverflow.com/questions/75913891/httpsconnectionpool-max-retries-exceeded-with-url-caused-by-sslerror CERTIFICATE_VERIFY_FAILED error Python Django error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)> Exception Location: /usr/lib/python3.8/u... https://askubuntu.com/questions/1401379/certificate-verify-failed-error Why do I receive 'unable to get local issuer certificate (_ssl.c:997)' When sending a request to a specific URL I get an SSL error and I am not sure why. First please see the error message I am presented with: requests.exceptions.SSLError: HTTPSConnectionPool(host='di... https://stackoverflow.com/questions/70977935/why-do-i-receive-unable-to-get-local-issuer-certificate-ssl-c997 SSLError: max retries exceeded with url error? How to fix this? I am attempting to scrape text off of websites, and I am using the requests module to do so. With the given code (Facebook as an example here) requests.get('http://facebook.com') I receive back the https://stackoverflow.com/questions/72188582/sslerror-max-retries-exceeded-with-url-error-how-to-fix-this
John Doe · Aug. 29, 2023, 8:15 p.m.
ssl python
What is JSON Web Token? JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA. JSON Web Tokens can be integrity protected with a hash-based message authentication code (HMAC). The producer and consumer must posses a shared secret, negotiated through some out-of-band mechanism before the JWS-protected object is communicated (unless the producer secures the JWS object for itself). 정보를 비밀리에 전달하거나 인증할 때 주로 사용하는 토큰으로, Json객체를 이용함. 그냥 DB에 인증 코드를 저장 하는 경우도 많지만 어디에도 저장하지 않는 방법도 흔히 쓰인다. 단순하게는 그냥 인증 정보를 HMAC 으로 사인하기만 하더라도 보안상 충분하고 더 많은 기능이 있는 JWT같은 방식을 사용할 수도 있다. JWT는 Json Web Token의 약자로 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이다. 웹 상에서 정보를 Json형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 없는 string 형태로 저장되어있다.   HMAC (Hash-Based Message Authentication Codes) Definition Hash-based message authentication code (or HMAC) is a cryptographic authentication technique that uses a hash function and a secret key. With HMAC, you can achieve authentication and verify that data is correct and authentic with shared secrets, as opposed to approaches that use signatures and asymmetric cryptography. -메세지 인증을 위한 Keyed-Hasing의 약자 -인증할 데이터와 공유 비밀키에 대해 암호화 해시 함수(예. SHA1, SHA256)를 실행하여 얻은 메시지 인증코드 전자 서명과 유사 : 무결성/진정성 강화, 암호키 사용, 해시 함수 사용 전자 서명과 차이 : 전자 서명(비대칭키), HMAC(공개키) -인증과정 해쉬 생성 : 클라이언트는 key + message를 HMAC 알고리즘으로 처리하여 hash 값을 만들어낸다. 요청 보내기 : 생성된 hash와 message를 HTTP 요청으로 REST API서버에게 보낸다. 보통 hash는 HTTP 헤더 또는 url에 포함된다. 해쉬 생성 : 서버는 클라이언트에게서 받은 요청 내의 message와 본인이 가지고있던 key를 조합하여 HMAC으로 hash값을 생성한다. 비교 : 클라이언트에서 넘어온 hash와 서버에서 생성된 hash가 동일한지 비교한다. 동일하면 인증 성공이다.   JWT: Choosing between HMAC and RSA HMAC is used to prevent manipulation by someone who does not have access to the secret. Typically this means preventing manipulation by the client if the secret is only known to the server or to prevent manipulation in transit if the secret is known to client and server. An RSA based signature is used to prevent manipulation and also to allow others to verify the integrity and source of the data without being able to manipulate the data. This can be done because the private key is only known to the provider and signer of the data while the public key is known to everybody who likes to verify the integrity. What to choose thus depends on your specific use case. If the server just needs to protect the token against manipulation by the client then using HMAC with a server side secret is enough. If instead it needs to be also proven to others that the token was created by a specific (trusted) server then RSA based signatures should be used.   JWT.IO - JSON Web Tokens Introduction Learn about JSON Web Tokens, what are they, how they work, when and why you should use them. http://jwt.io/ JWT: Choosing between HMAC and RSA It is my understanding that HMAC is a symmetric signing algorithm (single secret key) whereas RSA is an asymmetric signing algorithm (private/public key pair). I am trying to choose between these 2 https://security.stackexchange.com/questions/220185/jwt-choosing-between-hmac-and-rsa HMAC (Hash-Based Message Authentication Codes) Definition | Okta Okta Looks like you have Javascript turned off! Please enable it to improve your browsing experience. Skip to main content Registration for Oktane is open! Registration for Oktane is open! Register now Register now Register now for Oktane +1 (800) 425-126 https://www.okta.com/identity-101/hmac/ HMAC 인증이란? - REST API의 보안 안녕하세요! HMAC 인증 이라는게 참 처음접하면 이게 어떤 원리로 동작하는건지 혼란스러운데, 찾아보니 영어로는 쉽게 잘 설명해주는 글들이 많은데 한국어로는 쉬운 설명이 정말 거의 없더라구요. 그래서 제가 하나 적어보기로 했습니다. HMAC을… http://haneepark.github.io/2018/04/22/hmac-authentication/ HMAC 알고리즘 정리 Mac이란?Message Authentication Code의 약자로 "인증된 메세지코드"라는 의미비즈니스 의사 결정과 프로세스는 정확하고 신뢰가능한 데이터에 의존적데이터 변조와 변경 사항이 눈에 띄지 않으면 의사 결정 밒 프로세스에 영향을 미칠 수 있음데이터를 인터넷 https://velog.io/@jamwonsoo/HMAC-알고리즘-정리 JWT란 무엇인가? JWT(Json Web Token) > 정보를 비밀리에 전달하거나 인증할 때 주로 사용하는 토큰으로, Json객체를 이용함 JWT는 Json Web Token의 약자로 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이다. 웹 상에서 정보를 Json형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 ... https://velog.io/@hahan/JWT란-무엇인가
John Doe · Aug. 28, 2023, 11:04 p.m.
JWT HMAC RSA
SPF, DKIM, and DMARC help authenticate email senders by verifying that the emails came from the domain that they claim to be from. These three authentication methods are important for preventing spam, phishing attacks, and other email security risks.   How does DMARC work? Domain-based Message Authentication Reporting and Conformance (DMARC) tells a receiving email server what to do given the results after checking SPF and DKIM. A domain's DMARC policy can be set in a variety of ways — it can instruct mail servers to quarantine emails that fail SPF or DKIM (or both), to reject such emails, or to deliver them. 도메인 기반 메시지 인증, 보고 및 적합성(DMARC)은 이메일 메시지를 인증하는 방법이다. DMARC 정책은 추가 이메일 인증 방법인 도메인의 발신자 정책 프레임워크(SPF) 및 도메인키 식별 메일(DKIM) 레코드를 확인한 후 수행할 작업을 수신 이메일 서버에 알려준다. 스팸 발송자는 도메인이나 조직을 스푸핑하여 조직에서 전송된 것처럼 위장된 위조 메일을 보낼 수 있다. DMARC는 조직에서 보낸 것처럼 보이지만 인증 확인을 통과하지 못했거나 DMARC 정책 레코드의 인증 요구사항을 충족하지 못한 메일을 받은 경우 메일 수신 서버에서 수행할 작업을 알려준다. 인증되지 않은 메일은 조직에서 보낸 것처럼 위장되었거나 승인되지 않은 서버에서 전송된 메일일 수 있다. DMARC는 항상 다음의 두 가지 이메일 인증 방법 또는 인증 확인에 사용된다. SPF(Sender Policy Framework): 도메인 소유자가 해당 도메인으로 된 이메일을 보낼 수 있는 IP 주소를 승인할 수 있다. 수신 서버에서는 특정 도메인에서 전송된 것처럼 보이는 메일이 도메인 소유자가 허용하는 서버에서 전송된 메일인지 확인할 수 있다. DKIM(Domain Keys Identified Mail): 전송된 모든 메일에 디지털 서명을 추가할 수 있다. 수신 서버에서는 이 서명을 통해 메일의 출처가 확실한지, 전송 중에 위조되거나 변경되지 않았는지 확인할 수 있다.   How does DKIM work? DomainKeys Identified Mail (DKIM) enables domain owners to automatically "sign" emails from their domain, just as the signature on a check helps confirm who wrote the check. The DKIM "signature" is a digital signature that uses cryptography to mathematically verify that the email came from the domain. 도메인키 식별 메일(DKIM)은 스팸 발송자 및 기타 악의적인 당사자가 합법적인 도메인을 가장하는 것을 방지하는 데 도움이 되는 이메일 인증 방법이다. DKIM을 설정하여 스푸핑으로부터 도메인을 보호하고 발신 메일이 스팸으로 표시되지 않도록 할 수 있다. 스푸핑은 이메일 메시지의 보낸사람 주소를 위조하는 이메일 공격 유형으로 조직이나 도메인에서 보낸 것처럼 보이도록 위장한다. 메일이 수정되거나 메일의 보낸사람: 주소가 무단으로 변경되면 DKIM은 이를 감지한다.   How does SPF work? Sender Policy Framework (SPF) is a way for a domain to list all the servers they send emails from. Think of it like a publicly available employee directory that helps someone to confirm if an employee works for an organization. SPF(Sender Policy Framework) 레코드는 특정 도메인에서 이메일을 보낼 수 있도록 승인된 모든 서버를 열거하는 DNS TXT 레코드의 한 가지 유형이다. 즉 메일을 받는 쪽의 서비스 회사에서 특정 도메인을 통해 보낸 메일이 스팸처리 되지 않게 하는 레코드다.   Define your SPF record—Basic setup - Google Workspace Admin Help Skip to main content Google Workspace Admin HelpSign inGoogle HelpHelp CenterCommunityGoogle Workspace AdminPrivacy PolicyTerms of ServiceSubmit feedback Send feedback on...This help content & informationGeneral Help Center experienceNextHelp CenterCommun https://support.google.com/a/answer/10685031?hl=en#:~:text=An%20SPF%20record%20identifies%20the,can%20have%20one%20SPF%20record SPF, DKIM & DMARC: What Is It? How to Set It Up SPF, DKIM & DMARC guide. Learn what they are and how to set them up in your DNS records, for better control over your email deliverability. https://woodpecker.co/blog/spf-dkim/ Prevent mail to Gmail users from being blocked or sent to spam - Gmail Help Skip to main content Gmail HelpSign inGoogle HelpHelp CenterCommunityGmailPrivacy PolicyTerms of ServiceSubmit feedback Send feedback on...This help content & informationGeneral Help Center experienceNextHelp CenterCommunityNew to integrated Gmail Prevent https://support.google.com/mail/answer/81126?sjid=2199876885813467615-AP DKIM을 사용하여 스푸핑 및 스팸 방지하기 - Google Workspace 관리자 고객센터 기본 콘텐츠로 이동 Google Workspace 관리자 고객센터로그인Google 도움말도움말 센터Google Workspace 관리자개인정보 취급방침서비스 약관의견 보내기 다음에 관한 의견 보내기...이 도움말 콘텐츠 및 정보일반적인 고객센터 사용 환경다음 DKIM을 사용하여 스푸핑 및 스팸 방지하기스푸핑, 피싱으로부터 보호하고 메일이 스팸으로 표시되는 것을 방지하기 DKIM을 설정하여 스푸핑으로부터 도메인을 보호하고 발신 메일이 스팸으로 표시되지 않 https://support.google.com/a/answer/174124?hl=ko https://www.cloudflare.com/learning/email-security/dmarc-dkim-spf/
John Doe · Aug. 28, 2023, 9:59 p.m.
DMARC DKIM SPF
  • 1 (current)
  • 2
  • 3
  • 11