macOS Sequoia の .NET で HTTPS 開発者証明書エラーの回避策

macOS Sequoia の .NET で HTTPS 開発者証明書エラーの回避策

Michael Charles Aubrey // Tue Sep 24 2024

macOS 15 Sequoia ではセキュリティ API に変更が加えられ、dotnet CLI で HTTPS 開発者証明書の生成と信頼ができなくなりました。

dotnet dev-certs https コマンドを実行すると、次のエラーメッセージが表示されます:

There was an error creating the HTTPS developer certificate.

詳細フラグ(-v)を付けて実行すると、より詳細なエラーが表示されます:

An error has occurred generating the certificate: Interop+AppleCrypto+AppleCommonCryptoCryptographicException: The specified item is no longer valid. It may have been deleted from the keychain.

影響

この問題により、macOS Sequoia 上の .NET 開発者が HTTPS 開発証明書を生成または信頼できなくなっています。これらの証明書がないと、HTTPS が必要な .NET アプリケーションの開発やデバッグができません。

回避策

10月にリリース予定の修正がありますが、以下の回避策(GitHub ユーザーの pvasek さんと kalebzettl さんに感謝)を今すぐ使用できます:

  1. 念のため、現在存在する証明書を削除します。 ターミナルを開いて実行:dotnet dev-certs https --clean

  2. .NET SDK パッケージ表 から "main" リリースの tar.gz ファイルをダウンロードします。 以下のリンクから直接アクセスもできます。

  3. ダウンロードしたファイルを解凍します。

  4. 解凍したフォルダから検疫属性を削除します。 ターミナルで実行:xattr -d com.apple.quarantine -r <フォルダ名> <フォルダ名> を解凍したフォルダの名前に置き換えてください。例:xattr -d com.apple.quarantine -r dotnet-sdk-9.0.100-rc.2.24473.22-osx-arm64

  5. 解凍したフォルダに移動: cd dotnet-sdk-9.0.100-rc.2.24473.22-osx-arm64

  6. このフォルダ内から、次のコマンドを実行して証明書を生成し信頼します。 ./dotnet dev-certs https --trust

dotnet の前の ./ に注意してください。これにより、グローバルにインストールされたバージョンではなく、ダウンロードしたバージョンを使用します。

これで HTTPS 開発者証明書が正常に生成され信頼され、macOS Sequoia での .NET 開発を続けることができます。

この記事は元々 Qiita に掲載されています。