質問するログイン新規登録

Q&A

解決済

3回答

2458閲覧

Python開発プログラム(EXE化済)、Windows11では無事動作するもWindowsServer2022で非動作

saya24

総合スコア264

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

1クリップ

投稿2026/03/18 05:07

編集2026/06/03 23:56

1

1

ヘディングのテキスト### 実現したいこと

EXE化した自分開発のプログラムは 内閣府から国民の祝祭日のCSVファイルをhttpsアクセスで取得しにいく内容になっています。UIなしの仕様、コンソール画面非表示でEXE化してしまいました。

以下全容、ロクなもんじゃないです...

Python

1import sys 2import os 3import configparser 4import urllib.request 5 6def get_Config(): 7 try: 8 # -------------------------------------------------- 9 # configparserの宣言とiniファイルの読み込み 10 # -------------------------------------------------- 11 curpath = os.path.dirname(os.path.realpath(sys.argv[0])) 12 cfgpath = os.path.join(curpath, "config.ini") 13 14 config_ini = configparser.ConfigParser() 15 config_ini.read(cfgpath, encoding='utf-8') 16 17 # -------------------------------------------------- 18 # config,iniから値取得 19 # -------------------------------------------------- 20 var1 = config_ini['ZIPP_TYPEA']['URL'] 21 var2 = config_ini['ZIPP_TYPEA']['OUTPUT'] 22 23 return var1, var2 24 except Exception: 25 raise 26 27 28 29def download_file(url, dst_path): 30 with urllib.request.urlopen(url) as web_file, open(dst_path, 'wb') as local_file: 31 local_file.write(web_file.read()) 32 33 34 35def req_URL(): 36 try: 37 lst_config = get_Config() 38 download_file(lst_config[0], lst_config[1]) 39 40 41 except Exception as e: 42 print ('??? ' + str(e) + ' ???') 43 44 45 46if __name__ == '__main__': 47 req_URL()

こちらはサーバで運用していくことを目的に開発しました。WindowsServer2022でEXE化したこちらを 正常動作させていくことが実現したいことです。

発生している問題・分からないこと

WindowsServer2016とWindowsServer2022では 途中でこけているのか、結果を得られません。

同じEXEをWindows11に配置して実行すると 無事動作しているとみえ 目的のCSVファイルを取得できます。
動作上必要になる情報を 決まった名前のファイルから取得する仕様ですが サーバでの動作時にこれを獲得できていない とか起きているのでしょうか
それとも、ファイアウォールとかを疑うべきでしょうか?

それとも.NETランタイプみたいなものが 運用予定のサーバに必要なのにセットアップされていないことが 非動作の要因になっているのでしょうか

エラーメッセージ

error

1コンソール非表示タイプのEXEで、ログ出力していない仕様のため、我ながらブラックボックスなんです!

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

自分のこちらでの過去記事を照会。
PyIntallerを利用したEXE化の際、オプション指定の追加で無事解決にいたっているようでした。

追記 2026/03/19 AM07:56

PowerShellでの URLアクセスの結果=現れたメッセージを画像と共に貼付けます
SSL/TLS セキュリティで保護されたチャネルの信頼関係を確立できませんでした
イメージ説明

追記 2026/03/19 PM02:03

TLS1.2

追記 2026/03/20 AM10:03

★異常を検知するための Try Catchが入っていない ファンクションは 全て修正、
例外時にprint文で 相応のメッセージが画面に現れるよう期待。

Python

1import sys 2import os 3import configparser 4import urllib.request 5 6def get_Config(): 7 try: 8 # -------------------------------------------------- 9 # configparserの宣言とiniファイルの読み込み 10 # -------------------------------------------------- 11 curpath = os.path.dirname(os.path.realpath(sys.argv[0])) 12 cfgpath = os.path.join(curpath, "config.ini") 13 14 config_ini = configparser.ConfigParser() 15 config_ini.read(cfgpath, encoding='utf-8') 16 17 # -------------------------------------------------- 18 # config,iniから値取得 19 # -------------------------------------------------- 20 var1 = config_ini['ZIPP_TYPEA']['URL'] 21 var2 = config_ini['ZIPP_TYPEA']['OUTPUT'] 22 23 return var1, var2 24 except Exception as e: 25 print ('??? ' + str(e) + ' ???') 26 raise 27 28 29 30def download_file(url, dst_path): 31 try: 32 with urllib.request.urlopen(url) as web_file, open(dst_path, 'wb') as local_file: 33 local_file.write(web_file.read()) 34 35 except Exception as e: 36 print ('??? ' + str(e) + ' ???') 37 38 39def req_URL(): 40 try: 41 lst_config = get_Config() 42 download_file(lst_config[0], lst_config[1]) 43 44 45 except Exception as e: 46 print ('??? ' + str(e) + ' ???') 47 48 49 50if __name__ == '__main__': 51 req_URL()

★EXE化の際に、従来コンソール表示なしの オプションを付け加えていたのでこれを外してEXE化対処

py -m PyInstaller D:\HOLIDAYS\HOLIDAYS.py --icon=D:\HOLIDAYS\images\HOLIDAYS.ico --onefile

2026/04/29 AM09:51 追記

反応が遅れており大変申し訳ありませんでしたが
3/25にhiroki-oさんからお示し頂いた コードを反映した現況のコード、及び
VisualStudio Professinal2022 びデバッグモードで実行した結果を 以下に貼り付けます。

EXE化したものを WindowsServer2022及びWindows11でコマンドプロンプトから起動しても 以下のエラーが表示されます。

??? <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1002)> ???
ERR
当初 VisualStudio Professinal2022上のデバッグ実行では 無事動作できていた記憶なので、当該Windows11端末での 証明書確認を ご提示方法に従い対応しています。
こちらのパスを EXE化の addfileオプションに指定しました。

今回ご提示のコードを反映する以前のコードで、VisualStudio Professinal2022のデバッグ実行(Windows11)で 本当に無事動作できていたのかを 再確認する必要がありますかね??
エラーメッセージ内容を解読できていないのですが、証明書があやしいのかな?とか思い出してしまって。
とりあえずコードを元に戻して
当初どおり、Windows11(VisualStudio Professinal2022)では 無事動作することを今から再確認します。
証明書確認

20260503 09:43AM追記

PyInstaller

1C:\Users\XXXXXXXX>py -m PyInstaller --add-data "C:\Users\XXXXXXXX\AppData\Local\Programs\Python\Python311\Lib\site-packages\certifi\cacert.pem;." D:\HOLIDAYS\HOLIDAYS.py --icon=D:\HOLIDAYS\images\HOLIDAYS.ico --onefile 2876 INFO: PyInstaller: 6.5.0, contrib hooks: 2024.3 3892 INFO: Python: 3.11.4 4956 INFO: Platform: Windows-10-10.0.26200-SP0 5972 INFO: wrote C:\Users\XXXXXXXX\HOLIDAYS.spec 6981 INFO: Extending PYTHONPATH with paths 7['D:\\HOLIDAYS'] 82902 INFO: Appending 'datas' from .spec 92902 INFO: checking Analysis 102902 INFO: Building Analysis because Analysis-00.toc is non existent 112902 INFO: Initializing module dependency graph... 122902 INFO: Caching module graph hooks... 132955 INFO: Analyzing base_library.zip ... 145819 INFO: Loading module hook 'hook-encodings.py' from 'C:\\Users\\XXXXXXXX\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'... 157617 INFO: Loading module hook 'hook-pickle.py' from 'C:\\Users\\XXXXXXXX\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'... 168384 INFO: Loading module hook 'hook-heapq.py' from 'C:\\Users\\XXXXXXXX\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'... 178687 INFO: Caching module dependency graph... 188793 INFO: Running Analysis Analysis-00.toc 198793 INFO: Looking for Python shared library... 208799 INFO: Using Python shared library: C:\Users\XXXXXXXX\AppData\Local\Programs\Python\Python311\python311.dll 218799 INFO: Analyzing D:\HOLIDAYS\HOLIDAYS.py 229023 INFO: Loading module hook 'hook-certifi.py' from 'C:\\Users\\XXXXXXXX\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'... 239046 INFO: Processing module hooks... 249051 INFO: Performing binary vs. data reclassification (5 entries) 259055 INFO: Looking for ctypes DLLs 269060 INFO: Analyzing run-time hooks ... 279060 INFO: Including run-time hook 'C:\\Users\\XXXXXXXX\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_inspect.py' 289060 INFO: Looking for dynamic libraries 299289 INFO: Extra DLL search directories (AddDllDirectory): [] 309289 INFO: Extra DLL search directories (PATH): [] 319442 INFO: Warnings written to C:\Users\XXXXXXXX\build\HOLIDAYS\warn-HOLIDAYS.txt 329453 INFO: Graph cross-reference written to C:\Users\XXXXXXXX\build\HOLIDAYS\xref-HOLIDAYS.html 339485 INFO: checking PYZ 349501 INFO: Building PYZ because PYZ-00.toc is non existent 359501 INFO: Building PYZ (ZlibArchive) C:\Users\XXXXXXXX\build\HOLIDAYS\PYZ-00.pyz 369740 INFO: Building PYZ (ZlibArchive) C:\Users\XXXXXXXX\build\HOLIDAYS\PYZ-00.pyz completed successfully. 379756 INFO: checking PKG 389756 INFO: Building PKG because PKG-00.toc is non existent 399756 INFO: Building PKG (CArchive) HOLIDAYS.pkg 4011185 INFO: Building PKG (CArchive) HOLIDAYS.pkg completed successfully. 4111201 INFO: Bootloader C:\Users\XXXXXXXX\AppData\Local\Programs\Python\Python311\Lib\site-packages\PyInstaller\bootloader\Windows-64bit-intel\run.exe 4211201 INFO: checking EXE 4311201 INFO: Building EXE because EXE-00.toc is non existent 4411201 INFO: Building EXE from EXE-00.toc 4511201 INFO: Copying bootloader EXE to C:\Users\XXXXXXXX\dist\HOLIDAYS.exe 4611217 INFO: Copying icon to EXE 4711233 INFO: Copying 0 resources to EXE 4811233 INFO: Embedding manifest in EXE 4911246 INFO: Appending PKG archive to EXE 5011281 INFO: Fixing EXE headers 5111499 INFO: Building EXE from EXE-00.toc completed successfully. 52 53C:\Users\XXXXXXXXXXX>CD DIST 54 55C:\Users\XXXXXXXX\dist>HOLIDAYS.EXE 56??? <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1002)> ???

20260603 21:19追記

ご提示2行追加の0320ソースの実行

20260604 08:55追記

コマンドプロンプト開き方変更

kamiyui_bidan👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

hiroki-o

2026/03/18 10:50

エクスプローラーからダブルクリックか、タスクスケジューラーで起動しているのでしょうか? PowerShellかコマンドプロンプトで、コマンドライン実行した場合、何かエラーは出ますか? 何も出ない場合、Pythonソースのあちこちにprint文を入れて、どこまで動いているか確認しましょう。 あと、現在のpyinstallerの引数を提示すると、何かわかる人がいるかもしれません。
melian

2026/03/18 13:29

プロキシサーバを経由する必要があったり、ファイアウォールによるアクセス制限が行われているのかもしれません。 WindowsServerのPowerShellで以下を実行して、何らかのエラーメッセージが表示されるのかどうかを確認してみてください。 Invoke-WebRequest -Uri https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv -OutFile syukujitsu.csv
saya24

2026/03/18 13:43

ご見解誠にありがとうございます。 只今自宅に帰宅し、実行できる環境にいないので、明朝PowerShell経由の起動を行ってみます。話題のサーバではCotexXDRを運用しているので こちらも若干疑っています。処理を抑制した記述が残っていないので 違うかもですが
meg_

2026/03/18 14:06

何かエラーログは残っていませんか?
saya24

2026/03/18 22:54

melianさん、meg_さん おはようございます。 ご提示のコマンドを 問題のサーバ上のPowerShellで実行した結果を 本文のほうに貼りつけました。 御確認頂けますでしょうか? インフラっぽい?? hiroki-oさん 実行は エクスプローラ上で当該EXEのダブルクリックです。 上記コメントのとおり PowershellでのURLアクセスで 何やら良からずコメントが見受けられたので 一先ず、EXE化のPyInstaller利用時の内容は 一先ず控えますね
katsuko

2026/03/18 22:55

コンソール非表示の実行ファイルだと、エラーメッセージは出ないんじゃないですか。 コンソール表示の実行ファイルを作り直して確認したほうがいいかもしれません。
melian

2026/03/19 01:49

少し調べてみたところ、TLS 1.2 を有効化することで解決できるかもしれません。PowerShell 上で以下を実行してから先程の Invoke-WebRequest を実行してみてください。 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 なお、Net.SecurityProtocolType に関しては以下のページを参照してください。 SecurityProtocolType 列挙型 (System.Net) | Microsoft Learn https://learn.microsoft.com/ja-jp/dotnet/api/system.net.securityprotocoltype
saya24

2026/03/19 05:02

melianさん ご見解・ご確認誠にありがとうございます。 インターネットオプションから TLS1.2が有効になっているかをまず確認したところ、既に有効化されているようでした。本文最後に関係のスクショを収めておきました。 ご提案のPowerShellでの実行は 現況保留させて頂いております。
dodox86

2026/03/19 05:46

コントロールパネルからの「インターネットオプション」はInternet Exlorer とかWinINetを使用した古いアプリ向けの設定で、PowerShellからの.NET関連のコマンドレットからの実行には影響しないもののはずです。
dodox86

2026/03/19 05:53

PowerShellのターミナル上からInvoke-WebRequestで成功するようになったとしても肝心のPyInstallerで作成したEXEで成功するとは限らない・それ以外にも問題があるかもしれないので、他の方も勧めているように適当なステップごとにprintを入れて実行状況を分かるようにして確認するのが早道だと思います。(たくさんコメントがあっても混乱すると思うので、私はこの辺で)
saya24

2026/03/20 01:18 編集

本文最後部分に追記を図りました。 この対応を受けて、サーバ側で 仕上がりのEXEを再実行すると 黒い画面(コンソールと呼ぶ??)現れるようになるも、すぐ閉じてしまう 状況を確認。 自分が期待した PRINT文からの メッセージ表示は なされなかった ことを意味します・ 尚、当該EXEのサーバ上の実行方法は 単にWクリックしたパターンと 右クリックからの「管理者として実行」 両方試すも 両方で処理結果得られず・強制終了の疑い Coretex XDRの 抑制イベントの記録はなしでした。 不慣れですがイベントビューアも確認、らしきコメントは見当たりませんでした。(書くような対処をしていないから当然なのか 正直そういったことも自分は分からないレベルです) 自分が これからとるべきことは PRINT文の出力先を ファイルにする=ログ出力の手立てですかね ちなみに、今回対策を経て仕上がったEXEファイル、Windows11ではやはり無事期待の処理結果を得ています!!  現況のご報告となりますぅ....
hiroki-o

2026/03/20 01:22

エクスプローラーからダブルクリックではなく、PowerShellかコマンドプロンプトで実行してみてください。 そうすれば、黒い画面は閉じません。
saya24

2026/03/20 23:17 編集

hiroki-oさん 貴重なご見解をありがとうございます。 ご提案の実行方法で 黒い画面が閉じないことを初めて知りました。 これは 今後の自分の作業の上で 非常に役立つ情報と実感しています! 何やら 出ましたね、 やはり当初TRY CATCHを仕掛けていなかった部分で エラーをはいたようですから 改修に価値はあったのかな PyInstallerで --noconsoleのオプションを指定して生成したEXEでは ご提案の実行方法であっても 今回のようにエラーが画面に現れることはないようですね(質問の主旨がズレたコメントで申し訳ないですが) こういう状況からして、 ・運用環境で動作が達成されるまで コンソール非表示でEXEを生成すべきでない  (コンソール非表示でEXE化しないと、運用実行時 完了するとPRESS ANYKEYが現われると思っている) ・コマンドプロンプトなりPowershellから 仕上げたEXEを実行することで、PRINT文の内容を把握できる この2点 習得しました。 本筋のエラーはこれからぐぐってみます
saya24

2026/03/22 22:32 編集

経過報告になります。 urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1002) をキーワードにネットに検索をかけると 対策が提示された記事を発見しました。 まだ読み解けていない・結局自分が何をすべきなのか 確認中ですhttps://kondeneenen.com/python_certificate_failed/ >urllib.request.urlopen ではなく requests.get を使用する。 これが対策かな??? でも Windows11の端末では 従来のソースで動作していたしなぁ...
matukeso

2026/03/23 22:59

メッセージがexpiredなので、サーバの時間がすごいズレてるとか、間にMITM型プロキシが挟まっていて、そいつの設定がおかしいとかを考える必要があるんじゃないでしょうか. caoの証明書をcurlでしらべると curl -sv https://www8.cao.go.jp/chosei/shukujitsu/ * start date: Sep 10 03:42:12 2025 GMT * expire date: Oct 12 03:42:11 2026 GMT * issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign RSA OV SSL CA 2018 ですが。
saya24

2026/03/23 23:36 編集

matukesoさん ご見解ありがとうございます。 とりあえず話題にしているEXEの想定の運用サーバの時刻確認しましたが ずれていないようでした。 またご提示のCURLコマンドを貼りつけて実行したところ 本文に貼りつけたような返答をえました。 受信した証明書の期限が切れています。
dodox86

2026/03/24 00:28

matukesoさんがコメントされているように、サーバー側の証明書の問題ではなくて、クライアント側(本件ではWindows Server側)の問題だと思います。 質問者 saya24さんが検索して得たサイト様の記事 https://kondeneenen.com/python_certificate_failed/ で クライアント側, OpenSSLを使っているpythonのプログラムが参照しているcert.pemが見付からないからエラーを出している、って書かれていますよね。 例えば私の古いWindows10マシンでCygwinのcurlコマンドで実行すると、(curlもOpenSSLを使っているはず) $ curl -sv https://www8.cao.go.jp/chosei/shukujitsu/ * Host www8.cao.go.jp:443 was resolved. * IPv6: 2001:240:1d4:1::33 * IPv4: 210.148.118.33 * Trying [2001:240:1d4:1::33]:443... * ALPN: curl offers h2,http/1.1 * TLSv1.3 (OUT), TLS handshake, Client hello (1): * SSL Trust Anchors: * CAfile: /etc/pki/tls/certs/ca-bundle.crt * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.3 (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519 / RSASSA-PSS * ALPN: server accepted h2 * Server certificate: * subject: C=JP; ST=Tokyo; L=Chiyoda-ku; O=Cabinet Office; CN=*.cao.go.jp * start date: Sep 10 03:42:12 2025 GMT * expire date: Oct 12 03:42:11 2026 GMT * issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign RSA OV SSL CA 2018 * Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption * Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption * Certificate level 2: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption * subjectAltName: "www8.cao.go.jp" matches cert's "*.cao.go.jp" * SSL certificate verified via OpenSSL. * Established connection to www8.cao.go.jp (2001:240:1d4:1::33 port 443) from 240d:f:bbc:7100:2482:4a6b:ca4b:3cf9 port 50576 ... となり、エラー無くレスポンスを得られます。
saya24

2026/03/24 22:50

dodox86さん コメントをありがとうございます。 i18nAgent.aiさん提示の対処法2で進めることとしました。開発端末が手元に戻り次第作業着手予定です。 経過報告になります。
bsdfan

2026/05/02 03:05

Win11とServer2022の違いについて、エラーになっている原因が、 1. 持っているCA証明書が違う 2. 送られてきている証明書が違う のどっちかだろうとなりますが、ここまで1の確認ばかりやられていて、2については何も調査・確認できていないと思います。 上でcortex xdrについて言及されていますが、SSL/TLS インスペクションが有効になっていたら、それ用の証明書の設定がいると思います。
saya24

2026/05/04 00:18

bsdfanさん、ご見解ありがとうございます。 Win11で仕上がったEXEの起動さえうまくいかないので、一先ずこちらの達成を目下のゴールに見据え 対応を進めますね。 VisualStudioのデバッグ実行だけでうまく実行できる状況なのが 現況とみています。
logres_Fan

2026/06/28 03:39

一度質問を閉じて整理して、再度質問するのはどうでしょう?
guest

回答3

0

ベストアンサー

Windows Server 2022のPythonで [SSL: CERTIFICATE_VERIFY_FAILED] が発生する原因と対策

Windows 11環境では正常に動作し、Windows Server 2022環境でのみエラーが発生する場合、原因は大きく分けて2つ考えられます。

想定される2つの原因

  • 原因①:OSのルート証明書が古い、または存在しない(有力)
    Windows Serverは初期状態、またはセキュリティポリシーによって「ルート証明書の自動更新(Windows Update経由)」がオフ(制限)されていることがよくあります。
    Windows 11には存在する「内閣府(GlobalSign)の最新のルート証明書」がWindows Server 2022側には無いため、Pythonが検証に失敗している可能性があります。
  • 原因②:社内プロキシやセキュリティ製品による通信チェック(SSLブレイクダウン)
    サーバーからインターネットへ接続する際、プロキシサーバー等がSSL通信の暗号を一度解除してチェックし、独自の自己署名証明書に差し替えてデータを送ることがあります。Pythonはこれを「偽物の証明書」と検知してエラーを出します。
    ※ただし、同一ネットワーク内のWindows 11で動作している実績がある場合、この可能性は低いです。

まずは、以下の手順で OpenSSLコマンドを使用した問題の切り分け(ボトルネックの特定) を行ってください。


🛠️ OpenSSLコマンドによる問題の切り分け手順

ステップ1:OpenSSLのインストール

対象のWindows Server 2022環境にOpenSSLをインストールし、コマンドが実行できる状態にします。

ステップ2:最新の「証明書リスト」をダウンロード

インターネット上で信頼されている最新の認証局リスト(cacert.pem)を手に入れます。

  1. ブラウザで curl公式サイト(https://curl.se/docs/caextract.html) にアクセスします。
  2. ページ内にある cacert.pem のリンクを右クリックしてファイルを保存します。
  3. 保存したファイルを、サーバー内の C:\temp\cacert.pem に配置します。

ステップ3:OpenSSLコマンドでの接続テスト

コマンドプロンプトを開き、ダウンロードした証明書を指定して接続をテストします(TLS 1.3 および TLS 1.2 の両方を確認します)。

【TLS 1.3 の確認】

cmd

1openssl s_client -connect www8.cao.go.jp:443 -tls1_3 -CAfile "C:\temp\cacert.pem" 2

【TLS 1.2 の確認】

cmd

1openssl s_client -connect www8.cao.go.jp:443 -tls1_2 -CAfile "C:\temp\cacert.pem" 2

📊 結果の判定と次のアクション

出力されたログの末尾を確認し、結果によって以下の通り対策を分岐させます。

パターン(A):Verification: OK と表示され、正しく接続できた場合

【ログの目印】
SSL handshake has read 3328 bytes and written 1538 bytes
Verification: OK

  • 原因: インフラ(ネットワーク)の問題ではありません。Windows Server 2022のOS環境、またはPython環境に「信頼されたルート証明書」がないことが原因です。
  • 対策: Windows Updateを実行してOSの証明書を更新するか、先ほどダウンロードした cacert.pem をPythonが参照できるように環境変数を設定します。

💡 Pythonに証明書の場所を教える(環境変数の設定手順)

Windowsのシステム環境変数に SSL_CERT_FILE を登録すると、Python(urllib)は自動的にそのファイルを使ってSSL検証を行うようになります。

  1. 「スタート」ボタンを右クリック > 「システム」 を開きます。
  2. 「システムの詳細設定」 をクリックします。
  3. 「環境変数...」 ボタンをクリックします。
  4. 「システム環境変数」(画面下側)の 「新規...」 をクリックします。
  5. 以下の通り入力し、すべて「OK」で閉じます。
  • 変数名: SSL_CERT_FILE
  • 変数値: C:\temp\cacert.pem

パターン(B):unable to get local issuer certificate と表示され、失敗した場合

【ログの目印】
SSL handshake has read 3295 bytes and written 342 bytes
Verification error: unable to get local issuer certificate

  • 原因: 最新の証明書リストを指定しても失敗するため、社内プロキシによる通信の監視(SSLブレイクダウン)など、インフラ側の制限に引っかかっている可能性が高いです。
  • 対策: プロキシ環境専用のルート証明書をネットワーク管理者から入手して指定するか、Pythonのプログラム側でSSL検証をスキップする(ssl.CERT_NONE)コードへの改修が必要になります。

まずは、OpenSSLコマンドを使ってどちらのパターンに該当するか、切り分けを試してみてください。

投稿2026/06/04 01:23

編集2026/06/04 01:26
stockflowlab

総合スコア33

saya24

2026/06/04 03:36

>2.ページ内にある cacert.pem のリンクを右クリックしてファイルを保存します。 サーバでは ブラウザさえ開くことができなかったので、Windows11の端末でブラウザを開いて こちらを対応しようとしています。 右クリックをすると 名前を付けてリンクを保存 という選択肢がありますが これが 仰られている「ファイルを保存します」に該当する行為でしょうか?
saya24

2026/06/04 04:33

WindowsServer2022のご提示パスに casert.@em なる先ほど取得したファイルを配置して TLS1.3のコマンドを実行した結果(抜粋)です。 --- No client certificate CA names sent Peer signing digest: SHA256 Peer signature type: rsa_pss_rsae_sha256 Peer Temp Key: X25519, 253 bits --- SSL handshake has read 2354 bytes and written 1538 bytes Verification error: self-signed certificate in certificate chain --- こういった状況であり、 お示しのメッセージどちらにも該当していないようでした。(見落としていたら申し訳ありません。) 次に当方がとるべき行動をご教示頂けますと幸いです。 
stockflowlab

2026/06/04 05:03

opensslコマンドによる切り分けの結果、発生している現象は 「原因②:社内プロキシやセキュリティ製品による通信チェック(SSLブレイクダウン)」 だと思います。 以下に、エラーメッセージから判明した事実と、最終的な対策をまとめます。 現象1:unable to get local issuer certificate 状態: ルート証明書(cacert.pem)を指定せずに実行した、あるいはWindows ServerのOSに証明書がない状態。 理由: プロキシから送られてきた証明書を検証するための元データ(ルート証明書)をOpenSSL側が持っていないため、検証処理そのものが実行できずに停止していました。 現象2:self-signed certificate in certificate chain 状態: 正しいルート証明書リスト(cacert.pem)を明示的に指定して実行した状態。 理由: 正しいリストと照合した結果、通信の途中に、世界的な認証局ではなく社内プロキシが独自に(勝手に)署名した「自己署名証明書(身元不明の証明書)」が割り込んでいることをOpenSSLが正確に検知したためです。 2. なぜ Windows 11 では正常に動作していたのか? 同一ネットワーク内の Windows 11 でエラーが出ない理由は、「社内プロキシのルート証明書」がすでにOSにインポート(信頼)されているためと考えられます。 一般的な社給PC(Windows 11等)の場合、企業の情シス部門がグループポリシーなどを用いて、プロキシ専用のルート証明書を事前にPCへ自動組み込みしているケースがほとんどです。一方、新規構築した Windows Server 2022 環境にはその社内証明書がまだ入っていなかったため、今回のようにエラーとして検知されたのだと思います。 3. 今後の対策 ネットワークの安全性を維持したまま本件を解決するため、インフラ(ネットワーク)管理者からプロキシの証明書を入手して適用する方法を推奨します。 ステップ1:プロキシのルート証明書を入手する 社内のインフラ・ネットワーク管理部署に連絡し、「プロキシのルート証明書(PEM形式 / .pem または .crt 拡張子のもの)」をもらってください。 ステップ2:OpenSSLでの接続確認 入手した社内証明書(例として C:\temp\社内のプロキシ証明書.pem とします)を指定し、再度opensslコマンドを実行します。 DOS openssl s_client -connect www8.cao.go.jp:443 -tls1_3 -CAfile "C:\temp\社内のプロキシ証明書.pem" これで Verification: OK が出れば、証明書が正しく一致したことになります。 ステップ3:Python環境への適用(環境変数の設定) Windows Server 2022 のシステム環境変数に以下を登録します。これにより、プログラム(Python)側はコードを変更することなく、自動的にプロキシの通信を信頼して動作するようになります。 変数名: SSL_CERT_FILE 変数値: C:\temp\社内のプロキシ証明書.pem (※実際に入手して保存したパス) 環境変数設定後、新しくコマンドプロンプトを開き直してPythonプログラムを実行し、正常に終了することを確認してください。
hiroki-o

2026/06/04 14:15

stockflowlabさん >これにより、プログラム(Python)側はコードを変更することなく、自動的にプロキシの通信を信頼して動作するようになります。 とありますが、本当ですか? 手元の環境で試したところ、環境変数を設定しただけではそちらを見ません。 import ssl (中略) cafile = os.environ.get("SSL_CERT_FILE") context = ssl.create_default_context() context.load_verify_locations(cafile = cafile) with urllib.request.urlopen(url, context = context) as web_file,(略) とソースを改造することで、SSL_CERT_FILEを見て実行できました。
hiroki-o

2026/06/04 14:58 編集

saya24さん もし、正式な証明書を入手するまで時間があれば、次のことを試してみてください。 上記のように3/20版ソースのdownload_file関数に追記して(インデントは適切に入れてください)、実行ファイルを作成します。 これは逆にWindows 11では動かなくなります。 実行ファイルと、Visual Studioで表示されたパスにあるcacert.pemを、Windows Serverにコピペします。 Windows Serverの環境変数にSSL_CERT_FILEを設定します。 コマンドプロンプトを開き直して、実行ファイルを実行します。 正式な証明書でも、おそらく同じようにソース修正が必要になると思います。 (というか、Windows 11の証明書で動けば、ソース修正無しで4/29版に証明書同梱で動くのでは、というのが私の予想) (追記) 念のため、Windows 11の環境変数にSSL_CERT_FILEがあるかどうかも確認してください。 もしあれば、4/29版が動かない理由は、それのような気がしてきました。
stockflowlab

2026/06/05 01:50

>>これにより、プログラム(Python)側はコードを変更することなく、自動的にプロキシの通信を信頼して動作するようになります。 >とありますが、本当ですか? >手元の環境で試したところ、環境変数を設定しただけではそちらを見ません。 自身の環境で、正常動作のパターンだけ試しましたが、これ、(エラーケース)関しては、環境依存の可能性があって、再現環境をつくるのが大変なので試していません。 ただ、同じプログラムで、Windows11では、問題なくどうさしているということなので、環境変数で直るのかなと推測した次第です。
saya24

2026/06/28 03:29

hiroki-oさん stockflowlabさん 現況の報告です。 1.手元のWindows11=VisualStudioのデバックモード実行で、PRINT文から処理過程で参照される証明書のパスを把握。(上記貼付けの 0320時点のコードの実行) 2.0320時点のコードに hiroki-oさんご提案の追記を対応。手元のWindows11の環境変数追加・値は1.で把握したパスの格納。 3.VisualStudioでデバッグ実行して動作確認し期待結果をえる。またEXE化もして、同じ手元のWindows11端末での実行を確認、やはり期待結果を得る。 4.WindowsServer2022のC:\TEMPフォルダに、作業1で取得したパスに保管された証明書ファイルを移植。また環境変数(システム)も追加して、値をC:\TEMP\cacert.pemを指定。 5.上記3でWindows11端末で起動成功のEXEファイルを WindowsServer2022に配置して実行も失敗。 6.一応stockflowlabさん提示のOPENSSLのコマンド実行TLS1.2/1.3双方確認も、エラーになること再確認 stockflowlabさん推察どおり、グループ会社統一のセキュリティ担保のめの制約が働いているのかな、という印象を当方も抱いております。 >プログラム側でSSL検証をスキップする(ssl.CERT_NONE)コードへの改修 これにチャレンジしてみようと考えています。context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)を試したら早々に ダメでしたが
hiroki-o

2026/06/28 04:58

saya24さん 会社ネットワークの環境依存という結論に達したのなら、私から提案できることはありません。 過去の経緯は省略して、シンプルに「Windows Server 2022で、このソースとこの設定で動きません」で質問を立て直したほうがよいと思います。 そのほうが皆さんに見てもらえる可能性が高いです。 (一応、ここのリンクも貼っておく) 私の回答は3/25の時点で終わっていて、あとは質問者さんの環境切り分けのアドバイスになります。 難しいことを言ったつもりは無いのですが、時間がかかり過ぎだと思います。 本当はもっと複雑なシステムなのだが抽象化して質問している、とは察しますが...
saya24

2026/06/28 08:38

長期にわたりご親切にご見解ありがとうございました。 SSL認証というものがよくわかっていないので 学習してから社内の有識者に尋ねてみます。 なんかSSL検証のスキップは あまりよろしくないと思い始めました。
saya24

2026/06/30 02:39

皆様 ご支援をありがとうございました。 ようやく解決することができました、長期間にわたっての放置申し訳ございませんでした。 stockflowlabさんがお示し頂いた 原因②で言及があったとおり、グループ会社のサーバ運用の制約・規定で、プログラム側に利用証明書のありか・同梱などの策をとうじても サーバにセットアップされた 別の証明書をインターネットに出る際に 利用するようになっている とのことでした。 またこちらが 有効期限切れであったことが 真の要因でした。大変お騒がせしました。 
guest

0

(既に質問者さんのほうで解決しているかもしれませんが、i18nAgent.aiさんの対処法2を実際に試した結果を回答します。)

Windows 11、Python 3.13.12で確認しました。
証明書が無い環境は、Windows 11のWindows Sandboxで確認しました。

提示されたソースが動く環境(証明書がある環境)で、証明書のパスを取得します。

Python

1import certifi 2print(certifi.where())

提示されたソース(追記版)に以下を追加します。

Python

1import certifi 2import ssl

download_file関数のtrywithの間に以下を追加します。
もしVisual Studio Codeを使用している場合、Pylanceがsys._MEIPASSをエラーにするかもしれませんが無視してください。

Python

1 # デフォルトの証明書のパス 2 ca_path = certifi.where() 3 4 if getattr(sys, 'frozen', False): 5 # PyInstallerで生成したexe実行時の証明書のパス 6 ca_path = os.path.join(sys._MEIPASS, 'cacert.pem') 7 8 context = ssl.create_default_context(cafile = ca_path)

urllib.request.urlopenの引数にcontextを追加します。

Python

1 with urllib.request.urlopen(url, context = context) as web_file, open(dst_path, 'wb') as local_file:

PyInstaller実行時、--onefileとともに以下のオプションを追加します。
パスは最初に取得したものに変更してください。
これで実行ファイルと証明書が一体化されます。

--add-data "C:\test\venv\Lib\site-packages\certifi\cacert.pem;."

以上で、証明書が無い環境を汚さずに実行できます。

(追記)
Visual Studioとコマンドプロンプトで同じPython環境を見ているかどうか不明なので、今回の件からVisual Studioは除外してください。
もちろんVisual Studioをエディター&デバッガーとして使うのはいいのですが、今回の件は既に正解を提示しています。
あとは、そちらの環境で再現するだけです。

目標
PyInstallerで生成したHOLIDAYS.exeと、config.iniの2本だけで、開発環境以外でもsyukujitsu.csvをネットから取得する。

確認

  1. 私が提示した方法で生成したHOLIDAYS.exeは、開発環境のWindows 11で動きますか?
  2. そのHOLIDAYS.exeとconfig.iniをSandboxにコピペして動きますか?
  3. 同様にWindows Serverで動きますか?

Windows 11のSandboxは、タスクバーの検索欄にsandboxと入力して検索結果に出てくる「Windows Sandbox」を起動してください。
初回は時間がかかるかもしれませんが、素のWindows 11(要するに証明書が無い環境)が起動します。
ちなみにSandboxは毎回まっさらな環境で起動します。
(もしかしたらHome Editionには入っていないかもしれません。Proならあります。)

1,2で動かない場合、手順が間違っています。
手順と言ってもPyInstallerを叩くだけなので、それを提示してください。
1,2で動いて3で動かない場合、Windows Server特有の何かなので、こちらでは調査できません。

不明な点はコメントしてください。

※質問者さん以外でこれを読んでいる人がいたら、私の説明の何が悪いのか指摘していただけると嬉しいです。

(追記2)
会社のネットワークでSandboxを遮断している可能性は高いですが、私には解決できません。
teratailはどこからでも見えるので、個人PCでも試せます。

PyInstallerの実行・及び証明書ありかの確認も 本来sandbox側で対応すべきだったんですかねぇ

Sandboxを勧めた理由は、証明書が無い環境で、証明書付き実行ファイルの動作確認をするためです。
上記のような発言は、それを理解しているか心配になります。ご理解ください。

確認手順を考えましたので、試してください。

1. 質問の3/20版のソース(証明書無し版。仮に0320.pyとする)は、PyInstallerを実行した同じコマンドプロンプトで

py 0320.py

で実行して、syukujitsu.csvを取得できますか?

2. 実行できた場合、0320.pyのimport urllib.requestdef get_Config():の間に

import certifi print(certifi.where())

を入れて、

py 0320.py

で実行して、syukujitsu.csvを取得できますか? その際、表示されたパスはPyInstallerの--add-dataに指定したパスと同じですか?

3. 現状のD:\HOLIDAYS\HOLIDAYS.pyが質問の4/29版のソース(削除したようですが、証明書あり版)であることを確認します。
--add-dataが2のパスであることを確認します。
buildフォルダー、distフォルダー、HOLIDAYS.specを削除して、再度PyInstallerを実行します。
生成された実行ファイルは、その場で実行できますか? syukujitsu.csvを取得できますか?
エラーになる場合、HOLIDAYS.specのdatas=行に出力されているパスは、2のパスと同じですか?

まずは、ここまでですね。
不明な点はコメントしてください。

投稿2026/03/25 09:45

編集2026/05/04 05:50
hiroki-o

総合スコア1902

saya24

2026/04/29 03:36

@hiroki-oさん 本文に経過報告を追記しました。 この中に記載した >当初どおり、Windows11(VisualStudio Professinal2022)では 無事動作することを今から再確認します。 について報告です。無事、VisualStudio Proffesinal2022(Windows11)では動作達成できることを再確認しました。 上記で本文に追記したコードでの実行結果です。2026/03/20 AM10:03の追記した内容のコードです。 この観点からして、証明書に異常はなく ご提示のコードを採用した実行では 証明書の参照が功を奏して無事に実行できるはずだったのでは という推察です。 だが  urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1002) のエラーを招いている()
hiroki-o

2026/04/29 03:43

いいえ、証明書の無い環境に持っていって動作確認したので、問題無いはずです。 こちらでも再確認してみます。
hiroki-o

2026/04/29 04:37

再確認したところ、問題ありませんでした。 念のためですが、 - 修正前に動いていた環境 - 証明書のパスを取得した環境 - 実行ファイルを作成した環境 は、同じWindows 11ですか? そのWindows 11のSandbox側には証明書が無いので、そこで試してみてください。 Sandboxで証明書無し版は動かない、証明書一体版は動くことが確認できたら、手順は正しいです。 Windows Server特有の何かかもしれませんが、こちらにWindows Server環境が無いので確認できません。
hiroki-o

2026/04/29 09:09

よく読んだら、Windows 11でも動かないと書いていますね。 何かの手順が間違っています。 証明書付きの実行ファイルを作る際の、py -m PyInstaller~を提示できますか?
saya24

2026/04/29 14:10

>- 修正前に動いていた環境 - 証明書のパスを取得した環境 - 実行ファイルを作成した環境 >は、同じWindows 11ですか? Yes, 但し、時間が経過した関係で WindowsUpdateがあたっています。 >そのWindows 11のSandbox側には証明書が無いので、そこで試してみてください。 大変申し訳ございません。 Sandbox という言葉が SalesForceの運用上 聞いたことがあるのですが 今回の話題のうえで 自分が解釈できておりません。 開発端末では ない 別Windows端末を用意しての実行をおっしゃられているでしょうか? また、試すべき実行方法は 現在当方がWindows11で直近で 試した VisualStudioからのデバッグじっ項のことではないのでしょうか? EXE化したものの実行をおっしゃられているでしょうか?
hiroki-o

2026/04/29 20:27

長文になったので、回答に追記しました。ご確認ください。
saya24

2026/05/01 04:53

ただ今、サンドボックスのインストールを完了しました。追って報告いたします
saya24

2026/05/01 07:18

hiroki-oさん サンドボックスのご紹介ありがとうございました。 今後の自分の業務活動に役たちそうでノウハウを吸収でき、助かります。 本文に画像貼り付けますが 結果は思わしくありませんでした。 検証対象・検証方法をだいぶ明確に ご指示頂きまして この状況ということは 自分が正しくEXE化を行えていないということでしょうか?
saya24

2026/05/01 12:34

ご提示いただきました確認事項の2しか対応していないですね。本文に最後に貼り付けた内容はサンドボックスでの実行結果だけですから。 1はサンドボックスに貼りつけず、自分のWin11端末でのEXE実行ですよね? これまだ未確認です。 実施のPyInstaller実行文は 既にはりつけていたと思いますが、また改めて明日貼り付けますね。 お付き合い頂きありがとうございます。
hiroki-o

2026/05/02 06:47

PyInstallerの実行方法は問題無いですが、出力が短すぎるように見えます。 buildフォルダー、distフォルダー、HOLIDAYS.specを削除して、再度PyInstallerを実行してみてください。
saya24

2026/05/04 00:48

hiroki-oさん 長期にわたってのご支援・あきらめずにこちらの問題に視野を向き合い続けて頂ける点 大変感謝しております。本文に buildフォルダー、distフォルダー、HOLIDAYS.specを削除して、再度PyInstallerを実施し かつ Windows11で実行した結果を貼り付けました。 ただ、貼り付けた実行結果は サンドボックスではないので 今からサンドボックスの実行を試行致します。結果をえたら報告あらためます
saya24

2026/05/04 02:13

hiroki-oさん 本文に buildフォルダー、distフォルダー、HOLIDAYS.specを削除して、再度PyInstallerを実施し 生成されたEXEの sandbox上の実行結果を貼り付けました。 メッセージは変わったのですが、sandbox環境が インターネットに接続できているか若干心配です。 従業員端末が sandboxの利用・sandbox経由の外部接続をよしとしないのか 検証の本来の目的を達成できているのか  不安な状況です。 PyInstallerの実行・及び証明書ありかの確認も 本来sandbox側で対応すべきだったんですかねぇ 明日は 自宅WiFiとは異なる 会社のLANケーブル接続で 再確認しようと考えています。 (自宅WiFiを利用して 持ちかえっている従業員端末での開発・検証を継続してきています。 sandboxで一度検証して以降 当該従業員端末で 自宅WiFiを利用した外部接続が行えていない状況。なんか遮断されているような・別のWiFi利用ならば 外部接続を復活できた。但しsandboxは外部接続不可)
saya24

2026/05/04 02:36

上記で 自分が 「なんか遮断されているような」 と述べた理由は サンドボックスで、Web閲覧する従業員を 親会社のIT部門が監視できないのでは と思いました。
hiroki-o

2026/05/04 05:51

長文になったので、回答に(追記2)で追記しました。ご確認ください。
saya24

2026/06/03 12:18

@hiroki-oさん お待たせして大変申し訳ございませんでした。 本日 追記2に記載頂いた 項番1から検証を再開致しました。 >1. 3/20版のソース(証明書無し版)は、~で実行して、syukujitsu.csvを取得できますか? ===>できました。 3/20に自分が貼付けたソース、及び その下に自分で貼付けたPyInstallerの実行構文から仕上げたexeのコマンドプロンプト上の実行で 成功しています。 hiroki-o様がこの場面で想定されているPyInstallerの実行構文と 私が実施したPyInstallerの実行構文に差がないか、若干不安です。当方--add-dataオプション含めませんでしたが まずかったでしょうか? >2.実行できた場合、0320.pyのimport urllib.requestとdef get_Config():の間に~ ===>.pyの実行との記載でしたから、ご提示2行の挿入を果たした後 exe化せずに実行した結果です。 ・VS Pro2022のデバッグ実行結果は良好:ファイル取得成功、プリント文で得た結果を本文に追記。 ・コマンドプロンプトで該当の.pyを実行:ファイル取得成功、プリント文得られず。 たった2手順ですが 既にhiroki-o様が想定されている検証を実施できていない可能性もあるので、本日はここまでとしておきます。引き続きけん引頂けたら 非常にありがたいです。
hiroki-o

2026/06/03 14:09

1.は、それでいいです。 2.は、ちょっと謎ですね。 Visual Studioが見ているPython環境と、コマンドプロンプトが見ているPython環境は違うのでしょうか? Visual Studioが見ているPython環境で、コマンドプロンプトからPyInstallerを叩くとできると思いますが、それを特定できますか? (ここで、venvを使えと言うと、さらに混乱するので我慢する...今回の件が一通り終わってからvenvの使い方を勉強してください) とりあえず、私が提示した手順は、再実行しましたが間違っていないと思います。
saya24

2026/06/04 00:04 編集

先ほど本文に画像を改めて追加しましたが、2の Pythonファイルの実行時のコマンドプロンプトの開き方を変更しました。 昨日報告した2の手続きのコマンドプロンプトは Windowsから開いたものです。 今朝、先ほど画像に示した手続きは ご覧のとおり VisualStudioからコマンドプロンプトを開いての実行です。無事にPRINT文の結果を得られているようでした。 ノイズになりかねない報告にもなりえ 申し訳ありませんが 0320時点のソースから仕上げたEXEファイルを 別のWindows11端末に 配置して実行したところ、無事目的のCSVファイルを所定場所にえることができました。 これをWindowsServer2022に配置して 実行すると やはり失敗してしまう 状況でした。一応の報告です。
hiroki-o

2026/06/04 03:01

stockflowlabさんの回答で解決したなら、以下は読まなくて結構です。 作業の目的を再確認します。 ・3/20版のソースは、Python実行環境の証明書を読み込んで実行します。 ・その際の証明書のパスを取得するのが、(追記2)の2番目の作業です。 ・4/29版のソースは、証明書をexeに同梱して、exe実行環境では、その証明書を読み込んで実行します。 ・なので、exe作成の際に、(追記2)の2番目で取得したパスを--add-dataで指定します。 ・作成されたexeがWindows Serverで動けば終了。 ・動かない場合、exe作成に失敗しているのか、Windows Server特有の事情なのかを切り分ける方法として、  ・Windows 11(exe作成環境)で動くのか←今は、ここで止まっている?  ・Windows Sandbox(証明書が無い環境)で動くのか←ここで動けば、同梱した証明書を見ているのが確実  を提示しています。 Visual Studioが見ているPython環境で動いているなら、その環境で証明書のパス取得とPyInstallerを実行してください。 あと、職場でPythonわかる人に、このページを見てもらったほうが早いと思います。 (質問には答えますが、こちらでは質問者さんのPython環境がわからないので)
guest

0

エラーメッセージ SSL: CERTIFICATE_VERIFY_FAILED certificate has expired から、SSL証明書の検証に失敗していることが原因です。

Windows Server 2022ではルート証明書の自動更新がデフォルトで無効になっている場合があり、古い証明書ストアのままだとhttpsアクセスに失敗します。

対処法1: ルート証明書の更新
サーバーのWindows Updateを実行するか、certutil コマンドでルート証明書を手動更新してください。

対処法2: Pythonコード側での対応
certifi パッケージをインストールし、PyInstallerでバンドルすることで、OS側の証明書ストアに依存しなくなります。

投稿2026/03/23 10:41

i18nagentai

総合スコア16

saya24

2026/03/23 23:16

i18nAgent.aiさん ありがとうございます、ただいま対処法の選択を検討中です。matukesoさんから頂きました見解も考慮に入れて判断致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問